javascript中的filter函数
最近在正在学习vue,看到示例中网格组件的时候,被一段嵌套代码搞的晕头转向,多方求助(segmentful提问)之后才将将理解,特此记录,以备后续查询:查看全部代码点击此处部分代码片段:data = data.filter(function (row) {return Object.keys(row).some(function (key) {return String(
·
最近在正在学习vue,看到示例中网格组件的时候,被一段嵌套代码搞的晕头转向,多方求助(segmentful提问)之后才将将理解,特此记录,以备后续查询:
查看全部代码点击此处
部分代码片段:
data = data.filter(function (row) {
return Object.keys(row).some(function (key) {
return String(row[key]).toLowerCase().
indexOf(filterKey) > -1;
});
});
data = [
{ name: 'Chuck Norris', power: Infinity },
{ name: 'Bruce Lee', power: 9000 },
{ name: 'Jackie Chan', power: 7000},
{ name: 'Jet Li', power: 8000 }
]
注:在这里filterKey
表示的是在input中输入的字符串,这里假设输入ck
这里的row
表示的是data[i]
,以第一行为例执行代码,row
为{ name: 'Chuck Norris', power: Infinity }
,那么Object.keys(row) = ['name', 'power']
, key
表示name
和power
。首先是name
,row['name'] = 'Chuck Norris'
, 这个字符串中包含字符串'ck'
,所以返回true
,不需要执行power
,那么row
即data[0]
返回到新的数组,继续遍历下面的数据。如果row['name']
不包括此字符串,那么需要遍历row['power']
,如果都为false
,不返回row
,继续遍历。
整段代码涉及到vue的数据绑定,但是由于我还处于懵懂的状态就不记录了。
一只前端小白,如果您发现本文有什么错误或者理解不到位的地方,希望不吝赐教。
更多推荐
已为社区贡献2条内容
所有评论(0)