查找数组中符合条件的所有记录
var list=[ {id:1,name:"张三"}, {id:2,name:"李四"}, {id:3,name:"王五"}, {id:4,name:"张六"} ]
有以上数组,查找名字中有“张”的对象,在以前我们的写法:
//先定义一个空数组,然后for循环查找符合条件的记录添加 var newlist=[]; for(var i=0;i<list.count;i++){ if(list[i].name.indexOf('张')>-1){ newlist.push(list[i]) } }
有了ES6之后,我们可以这样写:
filter方法:
//ES6的数组新方法 filter
list.filter(function(item){ if(item.name.indexOf("searchStr")>-1){ return item } })
然后可以使用同样是ES6的箭头函数和includes方法:
includes(string)方法:如果包含了该字符串则返回true
list.filter(item=>{ if(item.name.includes("张")){ return item } })
查找数组并返回索引,只能返回一个:findIndex
var index=list.findIndex(item=>{ if(item.name.includes('张')){ return ture; } })