1. 程式人生 > 其它 >根據陣列物件某一元素的id,找到此元素在陣列所在的位置findIndex()

根據陣列物件某一元素的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>