最近发现了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