试图在数组数组中搜索值并返回索引。大多数答案是对象数组。所以我想搜索例如22并获得2作为找到值的索引
这是密码笔 https://codesandbox.io/s/lodash-playground-array-pzzhe
const arr = [["a","b"],["f","r"],["r",22,"t"]];
console.log("arr", arr);
答案 0 :(得分:4)
您可以使用带有Array#findIndex
和Array#includes
的纯Javascript。
var array = [["a", "b"], ["f", "r"], ["r", 22, "t"]],
value = 22,
index = array.findIndex(a => a.includes(value));
console.log(index);
答案 1 :(得分:1)
选项1 使用findIndex
const arr = [["a","b"],["f","r"],["r",22,"t"]];
console.log(arr.findIndex(a => a.includes(22)));
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);
答案 2 :(得分:0)
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>
答案 3 :(得分:0)
如果您实际上需要在其中找到该值的子数组,则也可以使用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)