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

Dash แยกผลิตภัณฑ์คาร์ทีเซียนของอาร์เรย์จำนวนเท่าใดก็ได้ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวอักษรจำนวนเท่าใดก็ได้ ฟังก์ชันควรคำนวณและส่งคืนอาร์เรย์ของผลิตภัณฑ์คาร์ทีเซียนขององค์ประกอบทั้งหมดจากอาร์เรย์ที่คั่นด้วย dash('−')

ตัวอย่าง

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

const arr1= [ 'a', 'b', 'c', 'd' ];
const arr2= [ '1', '2', '3' ];
const arr3= [ 'x', 'y', ];
const dotCartesian = (...arrs) => {
   const res = arrs.reduce((acc, val) => {
      let ret = [];
      acc.map(obj => {
         val.map(obj_1 => {
            ret.push(obj + '−' + obj_1)
         });
      });
      return ret;
   });
   return res;
};
console.log(dotCartesian(arr1, arr2, arr3));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[
   'a−1−x', 'a−1−y', 'a−2−x',
   'a−2−y', 'a−3−x', 'a−3−y',
   'b−1−x', 'b−1−y', 'b−2−x',
   'b−2−y', 'b−3−x', 'b−3−y',
   'c−1−x', 'c−1−y', 'c−2−x',
   'c−2−y', 'c−3−x', 'c−3−y',
   'd−1−x', 'd−1−y', 'd−2−x',
   'd−2−y', 'd−3−x', 'd−3−y'
]