ES6中Array.find()方法和Array.findIndex()方法
阿新 • • 發佈:2019-01-12
兩種方法不會改變原陣列
該方法在第一次呼叫回撥函式的時候就已經確定好索引,在find()方法執行之後再新增到的不會被執行,而刪除的項通向會被執行到,值是undefined。
let a = [1,2,3,4,5,6,7,8,9] a.find(function(item,index,arr){ if(index == 0){ a.push("10"); } console.log(item); // 1,2,3,4,5,6,7,8,9 }) console.log(a) //(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, "10"]
let a = [1,2,3,4,5,6,7,8,9]
let b = a.find(function(item,index,arr){
if(index == 0){
a.pop();
}
console.log(item);
})
find()方法用來查詢目標元素,找到就返回該元素,找不到返回undefined。
let a= [1,2,3,4,5,6,7,8,9] let b = a.find((item,index,array) => {return item > 5}) b //6 let b = a.find((item,index,arr) => {return item>10}) b //undefined
findIndex()函式也是查詢目標元素,找到就返回元素的位置,找不到就返回-1。
let a= [1,2,3,4,5,6,7,8,9]
let b = a.findIndex((item,index,array) => {return item>5})
b // 5
let b = a.findIndex((item,index,array) => {return item>10})
b // -1
如果你想在一串資料中找出你想要的資料,可以試試下面這個方法
let arr = [ { name : "張三", age : 20, grade : 100, }, { name : "李四", age : 26, grade : 30, }, { name : "王五", age : 46, grade : 80, } ] function get(item) { return item.name == '王五' } console.log(arr.find(get)); // {name: "王五", age: 46, grade: 80}
方法摘自csnd上面想看原文,請猛戳