_.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)

}


2
0

拱猪的小白菜

2018-01-25

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

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

0
0

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什么的有的是改变原数组有的不改变原数组返回新数组,这都要看,我也记不住

0
2
fishenal
回复
拱猪的小白菜
有点没看懂你的意思,可能我说的不明白,我更新一下这个答案你再看看
2018-01-25
共2条回复

龙葛葛

2017-11-17

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

0
0

最容易上手的Vue2.0入门实战教程

快速入门Vue2.0,组件化开发一个数字产品电商平台

3966 学习 · 999 问题

查看课程