簡體   English   中英

在lodash / es6中搜索嵌套數組

[英]Search nested array in lodash/es6

在數組數組中搜索值並返回索引。 大多數答案是對象數組。 所以我想搜索例如22並獲得2作為找到值的索引

這是代碼筆https://codesandbox.io/s/lodash-playground-array-pzzhe

 const arr = [["a","b"],["f","r"],["r",22,"t"]]; console.log("arr", arr); 

您可以使用帶有Array#findIndexArray#includes Array#findIndex純Javascript。

 var array = [["a", "b"], ["f", "r"], ["r", 22, "t"]], value = 22, index = array.findIndex(a => a.includes(value)); console.log(index); 

選項1使用findIndex

 const arr = [["a","b"],["f","r"],["r",22,"t"]]; console.log(arr.findIndex(a => a.includes(22))); 

選項2 :使用indexOf函數,並包括

 const arr = [["a","b"],["f","r"],["r",22,"t"]]; // find element const element = arr.find(a => a.includes(22)); // find element index const currentIndex = arr.indexOf(element) console.log(currentIndex); 

 indexOfFlat = (val, array) => array.findIndex(_arr => _arr.includes(val)); const arr = [["a","b"],["f","r"],["r",22,"t"]]; console.log("arr", arr); console.log("index", indexOfFlat(22, arr)) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.core.min.js"></script> 

萬一您實際上需要在其中找到該值的子數組,則也可以使用Array.find及其index並獲取兩者:

 const arr = [["a","b"],["f","r"],["r",22,"t"]]; let index, subArr = arr.find((x,i) => x.includes(22) && ~(index=i)) console.log('sub-array: ', subArr) console.log('index: ', index) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM