Javascript - Tạo các tập con trong 1 mảng

Tạo các tập con trong 1 mảng

Viết một hàm JavaScript để lấy tất cả các tập hợp con có thể có với độ dài cố định (ví dụ 2) 

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

Kết quả: [[2, 1], [3, 1], [3, 2], [3, 2, 1]]

Mã nguồn:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript array subset</title>
  <script>
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 << i)) !== 0)
          {
             result.push(arra[i]);
           }
        }  while(i--);

    if( result.length >= arra_size)
       {
          result_set.push(result);
        }
    }

    return result_set; 
}

document.write(subset([1, 2, 3], 2));
</script>
</head>
<body>

</body>
</html>

Xem ví dụ

Lưu đồ thuật toán:

Flowchart: JavaScript function: Get all possible subset with a fixed length combinations in an array


Chatbot Tư vấn Lộ trình CNTT 🤖
Chào bạn! Tôi có thể tư vấn về các lộ trình học CNTT dựa trên roadmap.w3typing.com. Hãy chọn một từ khóa dưới đây hoặc gõ câu hỏi của bạn (ví dụ: "Frontend", "Backend", "Python", "DevOps").