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

การรวมกันของผลรวมสำหรับอาร์เรย์ใน JavaScript


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

ฟังก์ชันของเราควรคืนค่าอาร์เรย์ของผลรวมขององค์ประกอบทั้งหมดของอาร์เรย์ย่อยที่เป็นไปได้ทั้งหมดที่มีความยาว n จากอาร์เรย์ดั้งเดิม

ตัวอย่างเช่น หากอินพุตคือ −

const arr = [2, 6, 4];
const n = 2;

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

const output = [8, 10, 6];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [2, 6, 4];
const n = 2;
const buildCombinations = (arr, num) => {
   const res = [];
   let temp, i, j, max = 1 << arr.length;
   for(i = 0; i < max; i++){
      temp = [];
      for(j = 0; j < arr.length; j++){
         if (i & 1 << j){
            temp.push(arr[j]);
         };
      };
      if(temp.length === num){
         res.push(temp.reduce(function (a, b) { return a + b; }));
      };
   };
   return res;
}
console.log(buildCombinations(arr, n));

ผลลัพธ์

เอาต์พุตในคอนโซล −

[ 8, 6, 10 ]