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
相等