假设我们有两个数组,例如请看以下两个-
const array1 = ['a','b','c','d','e','f','g','h']; const array2 = [ 1, 0, 0, 1 , 0, 0, 1, 0];
两个数组都必须具有相同的长度。我们需要编写一个函数,当提供第二个数组中的元素时,该函数从所有元素的第一个数组中返回一个子数组,该子数组的索引与我们在第二个数组中作为参数的元素的索引相对应。
例如:findSubArray应该返回-
[‘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' ]