最近發現了es6的兩個函數來根據條件來找到數組中的對應數據,實用性非常高。
find()函數用來查找目標元素,找到就返回該元素,找不到返回undefined。
findIndex()函數也是查找目標元素,找到就返回元素的位置,找不到就返回-1。
一、find()函數
1.基礎語法
data.find(function('數組當前行數據','下標','數組本身'){})
2.例:
var data = [ {checked: false,goodsName: '商品1',price: 10}, {checked: false,goodsName: '商品2',price: 20}, {checked: true,goodsName: '商品3',price: 20} ] var row = data.find(item => item.price > 10) console.log(row) var row2 = data.find(item => item.price === 10) console.log(row2) var row3 = data.find(item => item.price === 50) console.log(row3)
結果輸出:
{checked: false, goodsName: "商品2", price: 20} {checked: false, goodsName: "商品1", price: 10} undefined
二、findIndex()函數
1.語法與find()相同
2.例:
var data = [ {checked: false,goodsName: '商品1',price: 10}, {checked: false,goodsName: '商品2',price: 20}, {checked: true,goodsName: '商品3',price: 20} ] var index = data.findIndex(item => item.price > 10) console.log(index) var index2 = data.findIndex(item => item.price === 10) console.log(index2) var index3 = data.findIndex(item => item.price === 50) console.log(index3)
結果輸出:
1 0 -1