根据另一个 JavaScript 数组的值获取数组元素


假设我们有两个数组,例如:

const array1 = ['a','b','c','d','e','f','g','h'];
const array2 = [ 1, 0, 0, 1 , 0, 0, 1, 0];

这两个数组的长度必须相同。我们需要编写一个函数,当提供第二个数组中的一个元素时,返回第一个数组的子数组,该子数组的所有元素的索引都对应于我们在第二个数组中作为参数获取的元素的索引。

例如:findSubArray(0) 应该返回:

[‘b’, ‘c’, ‘e’, ‘f’, ‘h’]

因为这些元素存在于第一个数组的索引 1、2、4、5、7 处,而第二个数组中这些索引处的值为 0。

因此,现在让我们编写此函数的代码:

示例

const array1 = ['a','b','c','d','e','f','g','h'];
const array2 = [ 1, 0, 0, 1 , 0, 0, 1, 0];
const findSubArray = (first, second, el) => {
   if(first.length !== second.length){
      return false;
   };
   return second.reduce((acc, val, ind) => {
      if(val === el){
         acc.push(first[ind]);
      };
      return acc;
   }, []);
};
console.log(findSubArray(array1, array2, 0));
console.log(findSubArray(array1, array2, 1));

输出

控制台输出将是:

[ 'b', 'c', 'e', 'f', 'h' ]
[ 'a', 'd', 'g' ]

更新于:2020年8月26日

510 次查看

启动你的职业生涯

完成课程获得认证

开始学习
广告