根據另一個 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 次檢視

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.