84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
var checked_list = state.files.filter(function(item, id){ // console.log('click the ' + item.id); return item.id == id; }); console.info(checked_list);
这是为什么呢?this.fileid=1的情况下也无法正确过滤出数组
学习是最好的投资!
filter里面的函数,第一个参数是数组的value, 第二个参数是value对应的索引。你这句话是数组的每一项的id属性要等于它在数组中的索引。是这个错了么
楼上说的很好了,我补个链接算了https://developer.mozilla.org...
本人眼拙,代码应该是没问题的。
打印出来的数组应该就是过滤出来的数组,含有两个元素,第一个元素是 id 为 '1' 的对象。
id
'1'
说明在原来 state.files 里面第一个被匹配到的是第二个元素,这个对象的 id '1' 与 索引 1 相等
state.files
id '1'
1
filter里面的函数,第一个参数是数组的value, 第二个参数是value对应的索引。你这句话是数组的每一项的id
属性要等于它在数组中的索引。是这个错了么
楼上说的很好了,我补个链接算了
https://developer.mozilla.org...
本人眼拙,代码应该是没问题的。
打印出来的数组应该就是过滤出来的数组,含有两个元素,第一个元素是
id
为'1'
的对象。说明在原来
state.files
里面第一个被匹配到的是第二个元素,这个对象的id '1'
与 索引1
相等