Làm cách nào để tạo các tập hợp con của một mảng trong JavaScript?

Viết một hàm JavaScript để lấy tất cả các kết hợp tập hợp con có thể có độ dài cố định [ví dụ 2] trong một mảng

Mảng mẫu. [1, 2, 3] và độ dài tập hợp con là 2

Đầu ra dự kiến. [[2, 1], [3, 1], [3, 2], [3, 2, 1]]

Giải pháp mẫu. -

Mã HTML




  
  JavaScript array subset






Mã JavaScript

function subset[arra, arra_size]
 {
    var result_set = [], 
        result;
    
   
for[var x = 0; x < Math.pow[2, arra.length]; x++]
  {
    result = [];
    i = arra.length - 1; 
     do
      {
      if[ [x & [1 = arra_size]
       {
          result_set.push[result];
        }
    }

    return result_set; 
}

console.log[subset[[1, 2, 3], 2]];

Đầu ra mẫu

[[2,1],[3,1],[3,2],[3,2,1]]

Sơ đồ


Bản thử trực tiếp

Xem Pen JavaScript - Nhận tất cả các tập hợp con có thể có với các kết hợp độ dài cố định trong hàm mảng-ex-21 của w3resource [@w3resource] trên CodePen


Cải thiện giải pháp mẫu này và đăng mã của bạn qua Disqus

Trước. Viết hàm JavaScript tạo id chuỗi [độ dài được chỉ định] gồm các ký tự ngẫu nhiên.
Tiếp theo. Viết hàm JavaScript chấp nhận hai đối số, một chuỗi và một chữ cái và hàm sẽ đếm số lần xuất hiện của chữ cái được chỉ định trong chuỗi.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



JavaScript. Lời khuyên trong ngày

Sử dụng chữ mẫu để kết hợp chuỗi

Đặt các chuỗi lại với nhau là một điều khó khăn, đặc biệt là khi kết hợp các chuỗi và biến. Để làm cho quy trình này đơn giản hơn, bạn có thể sử dụng các ký tự mẫu [được đánh dấu bằng dấu gạch ngược], nhận cả chuỗi và biến

function greet[name] {
    return `Hi, ${name}`; //template literal
}
console.log[greet['Leo']];

Lưu ý ở đây rằng bằng cách sử dụng mẫu chữ, chúng ta có thể ghi lời chào cho bất kỳ người dùng nào dựa trên tên được truyền cho chúng ta, kết hợp chuỗi Hi và giá trị của tên biến được truyền. Do đó mã này in. Chào Leo

Trong bài viết này, chúng ta sẽ tìm hiểu cách lấy tất cả các tập hợp con của một mảng chỉ bằng cách sử dụng một dòng mã trong JavaScript. Đây là đoạn mã JavaScript một dòng sử dụng một trong những tính năng phổ biến nhất của ES6 =>

[[2,1],[3,1],[3,2],[3,2,1]]
2

Hãy xác định chức năng ngắn này

const getSubsets = arr => arr.reduce[[prev, curr] => prev.concat[prev.map[k => k.concat[curr]]], [[]]];

Tất cả các mục này được truy cập thông qua một chỉ mục. Trong JavaScript, mảng là các đối tượng thông thường chứa giá trị tại khóa được chỉ định, một khóa số

Mảng là đối tượng JavaScript có khóa số cố định và giá trị động chứa bất kỳ lượng dữ liệu nào trong một biến đơn

Mảng có thể là một chiều hoặc nhiều chiều. Mảng JavaScript có thể lưu trữ mọi thứ như giá trị trực tiếp hoặc lưu trữ các đối tượng JavaScript

Không giống như các ngôn ngữ khác, mảng JS có thể chứa các loại dữ liệu khác nhau ở các chỉ số khác nhau của cùng một mảng. Chúng ta sẽ tìm hiểu cách trích xuất một số phần tử hoặc tập hợp con của một mảng trong JavaScript

Phương thức

[[2,1],[3,1],[3,2],[3,2,1]]
3 là một phương thức tích hợp được cung cấp bởi JavaScript. Phương pháp này cắt mảng ở hai nơi

Việc cắt giảm này xảy ra bằng cách lấy hai đầu vào, chỉ số bắt đầu và chỉ số kết thúc. Và dựa vào đó, phần của mảng giữa các chỉ số sẽ được trả về

Nếu chỉ chỉ mục bắt đầu được chỉ định, nó sẽ trả về phần tử cuối cùng. Ưu điểm của việc sử dụng

[[2,1],[3,1],[3,2],[3,2,1]]
4 so với
[[2,1],[3,1],[3,2],[3,2,1]]
5 là mảng ban đầu là
[[2,1],[3,1],[3,2],[3,2,1]]
6 vì nó nằm trong một mối nối

cú pháp

slice[]
slice[start]
slice[start, end]

Mỗi phần tử có trong chỉ mục

[[2,1],[3,1],[3,2],[3,2,1]]
7 và
const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
0 [bao gồm phần tử bắt đầu và phần tử dừng trước phần tử kết thúc] được chèn vào mảng mới

Chỉ số kết thúc hoàn toàn là một tham số tùy chọn. Xem tài liệu phương pháp

[[2,1],[3,1],[3,2],[3,2,1]]
3 để biết thêm thông tin

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 

Khi chúng ta gọi

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
2, phần tử
const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
3 được sao chép từ mảng ban đầu,
const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
4 sang
const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
5

Nếu chỉ mục bắt đầu lớn hơn độ dài của một mảng, nó sẽ xuất hiện trống và đồng thời, mảng trống sẽ được trả về dưới dạng đầu ra

Thật thú vị, tham số đầu vào được coi là một

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
6 nếu bạn chỉ định một chỉ số âm. Khi bạn chạy đoạn mã trên trong bất kỳ trình duyệt nào, nó sẽ in một cái gì đó như thế này

đầu ra

Phương thức

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
7 ảnh hưởng hoặc sửa đổi nội dung của một mảng. Điều này được thực hiện bằng cách xóa, thay thế các mục hiện có và thêm các mục mới vào vị trí của chúng

cú pháp

function subset[arra, arra_size]
 {
    var result_set = [], 
        result;
    
   
for[var x = 0; x < Math.pow[2, arra.length]; x++]
  {
    result = [];
    i = arra.length - 1; 
     do
      {
      if[ [x & [1 = arra_size]
       {
          result_set.push[result];
        }
    }

    return result_set; 
}

console.log[subset[[1, 2, 3], 2]];

4

Phương thức nối JavaScript nhận ba tham số đầu vào, trong đó tham số đầu tiên là

[[2,1],[3,1],[3,2],[3,2,1]]
7

Tham số bắt buộc chỉ định vị trí/chỉ mục bắt đầu của mảng để sửa đổi mảng. Nếu lớn hơn độ dài của một mảng, bắt đầu được đặt thành độ dài của mảng

Trong trường hợp này, không có phần tử nào bị xóa, nhưng phương thức này hoạt động giống như một hàm cộng, thêm bao nhiêu phần tử tùy theo số phần tử [n*] được cung cấp

Nếu âm, hãy bắt đầu với nhiều phần tử đó ở cuối mảng

Tham số thứ hai là

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
9, một tham số tùy chọn. Tham số này chỉ định số phần tử của mảng cần loại bỏ ngay từ đầu

Nếu bỏ đi

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
9 hoặc giá trị của nó bằng hoặc lớn hơn
function subset[arra, arra_size]
 {
    var result_set = [], 
        result;
    
   
for[var x = 0; x < Math.pow[2, arra.length]; x++]
  {
    result = [];
    i = arra.length - 1; 
     do
      {
      if[ [x & [1 = arra_size]
       {
          result_set.push[result];
        }
    }

    return result_set; 
}

console.log[subset[[1, 2, 3], 2]];

41 thì tất cả các phần tử từ đầu đến cuối mảng đều bị xóa

0 hoặc âm, không có phần tử nào bị xóa. Trong trường hợp này, bạn cần nhập tối thiểu một mục mới

Tham số thứ ba là

function subset[arra, arra_size]
 {
    var result_set = [], 
        result;
    
   
for[var x = 0; x < Math.pow[2, arra.length]; x++]
  {
    result = [];
    i = arra.length - 1; 
     do
      {
      if[ [x & [1 = arra_size]
       {
          result_set.push[result];
        }
    }

    return result_set; 
}

console.log[subset[[1, 2, 3], 2]];

42, một tham số tùy chọn. Tham số này chỉ định các phần tử để thêm vào mảng, bắt đầu từ đầu

Nếu bạn không chỉ định một mục, thì

const inputArray = [1, 2, 3, 4, 5];
const outputArray1 = inputArray.slice[0, 1];
const outputArray2 = inputArray.slice[1, 3];
const outputArray3 = inputArray.slice[-2];
console.log[outputArray1];  
console.log[outputArray2]; 
console.log[outputArray3]; 
7 chỉ loại bỏ các phần tử của mảng

Phương thức này trả về một mảng thay thế chứa các mục đã xóa. Trả về mảng n phần tử nếu chỉ xóa n phần tử

Nếu không có phần tử nào bị xóa, một mảng trống sẽ được trả về. Xem tài liệu phương pháp

[[2,1],[3,1],[3,2],[3,2,1]]
5 để biết thêm thông tin

[[2,1],[3,1],[3,2],[3,2,1]]
0

Trong ví dụ trên, chúng tôi đã chỉ định các kiểu trái cây khác nhau. Khi bạn trích xuất trái cây có múi, nó sẽ ảnh hưởng đến mảng

function subset[arra, arra_size]
 {
    var result_set = [], 
        result;
    
   
for[var x = 0; x < Math.pow[2, arra.length]; x++]
  {
    result = [];
    i = arra.length - 1; 
     do
      {
      if[ [x & [1 = arra_size]
       {
          result_set.push[result];
        }
    }

    return result_set; 
}

console.log[subset[[1, 2, 3], 2]];

45 ban đầu và trả về một mảng

Điều đó không chứa tên của trái cây họ cam quýt. Khi bạn chạy đoạn mã trên trong bất kỳ trình duyệt nào, nó sẽ in một cái gì đó như thế này

Làm cách nào để tạo một tập hợp con của một mảng trong JavaScript?

Hàm subset[] trong p5. js được sử dụng để lấy tập hợp con của các phần tử mảng đã cho . Hàm này trích xuất các phần tử từ một mảng hiện có.

Làm cách nào để tìm tập hợp con của một mảng trong JavaScript?

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng ký tự làm đối số đầu tiên và duy nhất . Hàm sẽ xây dựng và trả về một mảng gồm tất cả các mảng con có thể được hình thành từ mảng ban đầu. đầu ra const = [ [2], [1], [3], [1,2,3], [2,3], [1,2], [1, 3], [] ];

Làm cách nào để tìm tập hợp con của một tập hợp trong JavaScript?

Để tìm tất cả các tập hợp con của một tập hợp, hãy sử dụng reduce[] cùng với map[] trong JavaScript.

Làm cách nào để lấy tất cả các mảng con của một mảng trong JavaScript?

Thuật toán. .
Duyệt mảng từ đầu đến cuối
Từ mỗi chỉ mục bắt đầu một vòng lặp khác từ i đến cuối mảng để lấy tất cả các mảng con bắt đầu từ i, giữ một biến sum để tính tổng
Đối với mọi chỉ mục trong cập nhật vòng lặp bên trong sum = sum + array[j]
Nếu tổng bằng tổng đã cho thì in ra mảng con

Chủ Đề