Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm phần tử chung giữa số lượng mảng tùy ý trong JavaScript

Cho object chứa các mảng số:

const obj = { 
  a: [15, 23, 36, 49, 104, 211], 
  b: [9, 12, 23], 
  c: [11, 17, 18, 23, 38], 
  d: [13, 21, 23, 27, 40, 85] 
};

Số mảng không cố định. Viết hàm trả về mảng phần tử chung của tất cả mảng con.

Kết quả: [23]

Ví dụ

const obj = { 
  a: [15, 23, 36, 49, 104, 211], 
  b: [9, 12, 23], 
  c: [11, 17, 18, 23, 38], 
  d: [13, 21, 23, 27, 40, 85] 
}; 
const commonBetweenTwo = (arr1, arr2) => { 
  const res = []; 
  for(let i = 0; i < arr1.length; i++){ 
    if(arr2.includes(arr1[i])){ res.push(arr1[i]); }; 
  }; 
  return res; 
}; 
const commonBetweenMany = (obj = {}) => { 
  const keys = Object.keys(obj); 
  let res = obj[keys[0]]; 
  for(let i = 1; i < keys.length - 1; i++){ 
    res = commonBetweenTwo(res, obj[keys[i]]); 
    if(!res.length) return []; 
  }; 
  return res; 
}; 
console.log(commonBetweenMany(obj));

Kết quả

Kết quả in ra console:

[23]