Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ฟังก์ชัน JavaScript รับอาร์เรย์หลายมิติและอาร์เรย์เดี่ยว หาค่าตรงกันในอาร์เรย์หลายมิติ


ภาพรวม

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

ตัวอย่าง

const arr1 = [
  [1,2,5,6],
  [5,13,7,8],
  [9,11,13,15],
  [13,14,15,16],
  [1,9,11,12]
];
const arr2 = [9,11,13,15,1,2,5,6];

เอาต์พุต

const output = [
  [1, 2, 5, 6],
  [5, 13],
  [9, 11, 13, 15],
  [13, 15],
  [1, 9, 11]
]

ตัวอย่างโค้ด

const arr1 = [
  [1,2,5,6],
  [5,13,7,8],
  [9,11,13,15],
  [13,14,15,16],
  [1,9,11,12]
];
const arr2 = [9,11,13,15,1,2,5,6];

const findIntersection = (arr1 = [], arr2 = []) => {
  const regex = new RegExp('\\b(' + arr1.join('|') + ')\\b', 'g');
  const res = [];
  arr2.forEach(arr => {
    let matches = arr.join(' ').match(regex);
    if (matches.length) {
      res.push(matches.map(Number));
    }
  });
  return res;
};

console.log(findIntersection(arr2, arr1));

ผลลัพธ์ในคอนโซล

[
  [ 1, 2, 5, 6 ],
  [ 5, 13 ],
  [ 9, 11, 13, 15 ],
  [ 13, 15 ],
  [ 1, 9, 11 ]
]