我希望在多維陣列中找到一個值的位置(id)。
var arr = [
['France', 'FA', 'Paris'],
['Allemagne', 'AJ', 'Berlin']
];
var x = 'France';
var index = arr.findIndex(id => id === x);
console.log(index);
預期:0,得到:-1
uj5u.com熱心網友回復:
由于id是一個陣列,因此您不能直接將其與字串進行比較。而是使用 include 之類的東西。
var arr = [
['France', 'FA', 'Paris'],
['Allemagne', 'AJ', 'Berlin']
];
var x = 'France';
var index = arr.findIndex(subarr => subarr.includes(x));
console.log(index);
如果您仍然想要比較功能,您也可以嘗試一些,如果您需要檢查物件屬性之類的東西,這會更有用。
var arr = [
['France', 'FA', 'Paris'],
['Allemagne', 'AJ', 'Berlin']
];
var x = 'France';
var index = arr.findIndex(subarr => subarr.some(id => id === x));
console.log(index);
uj5u.com熱心網友回復:
您必須為多維陣列創建自定義搜索功能
像下面這樣
var arr = [
['France','FA','Paris']
,['Allemagne', 'AJ', 'Berlin']
];
var x = 'AJ';
function get2DIndex(arr, query){
let iter = 0;
for(let i =0; i < arr.length; i ){
for(let j = 0; j < arr[i].length; j ){
if(query === arr[i][j]) return iter;
iter ;
}
}
}
var index = get2DIndex(arr, x)
console.log(index);
uj5u.com熱心網友回復:
您可以將Array.includes()與Array.findIndex()一起使用
const arr = [
['France','FA','Paris']
,['Allemagne', 'AJ', 'Berlin']
];
const findPosition = (list, key) => list.findIndex((item) => item.includes(key));
console.log(findPosition(arr, 'France'));
uj5u.com熱心網友回復:
您可以使用它Array#reduce來查找您正在搜索的字串的每次出現。結果是 [[ row, column],....]
var arr = [
['France', 'FA', 'Paris'],
['Allemagne', 'AJ', 'Berlin']
];
var x = 'France';
let result = arr.reduce((acc,e,i) => {
let index = e.indexOf(x)
if(index > -1)
acc.push([i,index])
return acc
},[])
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/494316.html
標籤:javascript 数组
