请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

_.remove(this.nowIndexes, (idx) => { return idx !== index })

this.nowIndexes = _.remove(this.nowIndexes, (idx) => {

          return idx !== index

        })

------------------------------------------------------------------

remove方法里面有两个参数,第一个是要删除元素的数组,第二个是要删除的元素,看不懂(idx) =>{return idx! == index} 是什么意思,   idx是什么???  还有  return后面的   idx !== index    是返回一个true或者false 吗?

正在回答 回答被采纳积分+3

4回答

qq_Mr_9 2018-01-19 12:01:31

我觉得 代码可以更简单点,老师可能是为了介绍插件所以复杂了,

if(this.nowIndex.indexOf(index) != -1){

this.nowIndex.splice(this.nowIndex.indexOf(index),1);

}else{

this.nowIndex.push(index)

}


2 回复 有任何疑惑可以回复我~
拱猪的小白菜 2018-01-25 16:29:54

idx代表第一个参数数组this.nowIndexes的每一项,index表示当前点击项的索引(这句话在else后面,就表示这个index项是选中状态,既在this.nowIndexes数组里

return idx !== index 表示返回所有选中索引中,不等于index的项,也就是把当前点击的那一项去掉了撒

0 回复 有任何疑惑可以回复我~
fishenal 2017-11-17 17:42:20

这里_.remove 方法,相当于遍历数组this.nowIndexes,第二个参数 

 (idx) => {

          return idx !== index

}


是一个条件,这个条件是一个函数,在遍历的时候,remove方法会给这个函数塞一个参数(就是idx),idx就是当前遍历的项(类似,i,或者item), 这个函数需要返回值,当返回为true的时候保留,返回为false的时候删除,所以只需要返回idx!==index 就相当于标记了每一项。


至于为什么可以 将remove方法操作后的数组赋值给this.nowIndexes, 这是因为_.remove并不会改变原数组,只会返回根据条件重组的数组,所以需要赋值。 这个信息是通过看文档得到的,每个方法都不一样,原生里的splice,split什么的有的是改变原数组有的不改变原数组返回新数组,这都要看,我也记不住

0 回复 有任何疑惑可以回复我~
  • idx代表第一个参数数组this.nowIndexes的每一项,index表示当前点击项的索引(这句话在else后面,就表示这个index项是选中状态,既在this.nowIndexes数组里)
    
    return idx !== index 表示返回所有选中索引中,不等于index的项,也就是把当前点击的那一项去掉了撒
    老师,我这么理解对不对~
    回复 有任何疑惑可以回复我~ 2018-01-25 16:31:35
  • 有点没看懂你的意思,可能我说的不明白,我更新一下这个答案你再看看
    回复 有任何疑惑可以回复我~ 2018-01-25 22:05:35
龙葛葛 2017-11-17 11:44:19

这个我帮回答下,你看不懂的是那个es6语法,原来的写法是匿名函数function(idx){return xxxx},return的肯定是true或者false呀,这个是js基础。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信