JavaScript返回一个数组,其中包含出现在所有子数组中的所有字符串

我们有一个这样的数组数组-

const arr = [
   ['foo', 'bar', 'hey', 'oi'],
   ['foo', 'bar', 'hey'],
   ['foo', 'bar', 'anything'],
   ['bar', 'anything']
]

我们需要编写一个JavaScript函数,该函数接受此类数组并返回一个数组,其中包含出现在所有子数组中的所有字符串。

让我们为该函数编写代码

示例

const arr = [
   ['foo', 'bar', 'hey', 'oi'],
   ['foo', 'bar', 'hey'],
   ['foo', 'bar', 'anything'],
   ['bar', 'anything']
]
const commonArray = arr => {
   return arr.reduce((acc, val, index) => {
      return acc.filter(el => val.indexOf(el) !== -1);
   });
};
console.log(commonArray(arr));

输出结果

控制台中的输出将为-

['bar']