_.remove(this.nowIndexes, (idx) => { return idx !== index })
来源:7-4 购买详情页 - 可多选项组件

450650472
2017-11-16
this.nowIndexes = _.remove(this.nowIndexes, (idx) => {
return idx !== index
})
------------------------------------------------------------------
remove方法里面有两个参数,第一个是要删除元素的数组,第二个是要删除的元素,看不懂(idx) =>{return idx! == index} 是什么意思, idx是什么??? 还有 return后面的 idx !== index 是返回一个true或者false 吗?
4回答
-
qq_Mr_9
2018-01-19
我觉得 代码可以更简单点,老师可能是为了介绍插件所以复杂了,
if(this.nowIndex.indexOf(index) != -1){
this.nowIndex.splice(this.nowIndex.indexOf(index),1);
}else{
this.nowIndex.push(index)
}
20 -
拱猪的小白菜
2018-01-25
idx代表第一个参数数组this.nowIndexes的每一项,index表示当前点击项的索引(这句话在else后面,就表示这个index项是选中状态,既在this.nowIndexes数组里)
return idx !== index 表示返回所有选中索引中,不等于index的项,也就是把当前点击的那一项去掉了撒
00 -
fishenal
2017-11-17
这里_.remove 方法,相当于遍历数组this.nowIndexes,第二个参数
(idx) => {
return idx !== index
}
是一个条件,这个条件是一个函数,在遍历的时候,remove方法会给这个函数塞一个参数(就是idx),idx就是当前遍历的项(类似,i,或者item), 这个函数需要返回值,当返回为true的时候保留,返回为false的时候删除,所以只需要返回idx!==index 就相当于标记了每一项。
至于为什么可以 将remove方法操作后的数组赋值给this.nowIndexes, 这是因为_.remove并不会改变原数组,只会返回根据条件重组的数组,所以需要赋值。 这个信息是通过看文档得到的,每个方法都不一样,原生里的splice,split什么的有的是改变原数组有的不改变原数组返回新数组,这都要看,我也记不住
022018-01-25 -
龙葛葛
2017-11-17
这个我帮回答下,你看不懂的是那个es6语法,原来的写法是匿名函数function(idx){return xxxx},return的肯定是true或者false呀,这个是js基础。
00
相似问题