Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วิธีสร้างการเปลี่ยนแปลงของอาร์เรย์ด้วยจำนวนองค์ประกอบที่กำหนดใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของลิเทอรัลเป็นอาร์กิวเมนต์แรกและตัวเลขเป็นอาร์กิวเมนต์ที่สอง

ฟังก์ชันควรสร้างอาร์เรย์ของอาร์เรย์ดังกล่าวทั้งหมดที่มีความยาวเท่ากับจำนวนที่ระบุโดยอาร์กิวเมนต์ที่สอง และมีการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดขององค์ประกอบของอาร์เรย์อินพุต

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตและตัวเลขเป็น −

const arr = ['k', 5];
const num = 3;

จากนั้นผลลัพธ์ควรเป็น −

const output = [
   [ 'k', 'k', 'k' ],
   [ 'k', 'k', 5 ],
   [ 'k', 5, 'k' ],
   [ 'k', 5, 5 ],
   [ 5, 'k', 'k' ],
   [ 5, 'k', 5 ],
   [ 5, 5, 'k' ],
   [ 5, 5, 5 ]
];

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = ['k', 5];
const num = 3;
const allPairs = (arr = [], num) => {
   const res = [];
   if(num === 0){
      return [[]];
   }
   const subResult = allPairs(arr, num - 1);
   for(let el of arr){
      for(let sub of subResult){
         res.push([el].concat(sub));
      }
   }
   return res;
}
console.log(allPairs(arr, num));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

[
   [ 'k', 'k', 'k' ],
   [ 'k', 'k', 5 ],
   [ 'k', 5, 'k' ],
   [ 'k', 5, 5 ],
   [ 5, 'k', 'k' ],
   [ 5, 'k', 5 ],
   [ 5, 5, 'k' ],
   [ 5, 5, 5 ]
]