根據陣列物件某一元素的id,找到此元素在陣列所在的位置findIndex()
<script>
var data = [
{ id: 1, name: 'test' },
{ id: 2, name: 'test2' },
{ id: 3, name: 'test3' },
{ id: 4, name: 'test4' },
{ id: 5, name: 'test5' },
]
var id = 2;
// 根據陣列物件某一元素的id,找到此元素在陣列所在的位置(findIndex)
var index = data.findIndex(item => item.id == id);
console.log(index) //1
定義和用法
findIndex() 方法返回傳入一個測試條件(函式)符合條件的陣列第一個元素位置。
findIndex() 方法為陣列中的每個元素都呼叫一次函式執行:
當陣列中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之後的值不會再呼叫執行函式。
如果沒有符合條件的元素返回 -1
注意: findIndex() 對於空陣列,函式是不會執行的。
注意: findIndex() 並沒有改變陣列的原始值 語法
array.findIndex(function(currentValue, index, arr), thisValue)
引數
// 陣列中兩個元素置換位置
function swapArr(arr, index1, index2) {
arr[index1] = arr.splice(index2, 1, arr[index1])[0];
return arr;
}
console.log('swapArr ', swapArr(data, 1, 2));
//指定陣列移動到第一個位置
function toFirst(arr, index) {
if (index != 0) {
arr.unshift(arr.splice(index, 1)[0]);
}
}
toFirst(data, index); // 呼叫
console.log('data ', data); 結果如下
</script>