Javascript 理解数组删除函数
我找到了从数组中删除元素的t。它真的很好用!但我真的不明白怎么Javascript 理解数组删除函数,javascript,Javascript,我找到了从数组中删除元素的t。它真的很好用!但我真的不明白怎么 // Array Remove - By John Resig (MIT Licensed) Array.prototype.remove = function(from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = from < 0 ? this.length + from : from; re
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
//数组删除-由John Resig(麻省理工学院授权)
Array.prototype.remove=函数(从,到){
var rest=this.slice((to | | from)+1 | | this.length);
this.length=from<0?this.length+from:from;
返回此。推。应用(此,其余);
};
我对这句话感到困惑:
(to | | from)+1 | | this.length)
,对于初学者;也许一旦我明白了这一点,剩下的事情就会变得更加清楚。非常感谢您的帮助,让我们知道这里发生了什么。谢谢。如果|
的左侧为真值,它将返回左侧。否则它将返回右侧。如果|
的左侧为真值,它将返回左侧。否则它将返回右侧。第一部分将获得数组的其余部分,在切片之后。如果将指定为
,则它将切片
将指定为
之后的所有内容;否则,它将slice
sfrom
之后的所有内容。如果其中任何一个是-1
,它将获得一个空切片
下一部分在移除的开始位置之前向右截断数组
最后一部分在数组末尾重新插入
rest
(要删除的范围之后的部分)。第一部分在切片之后获取数组的其余部分。如果将指定为
,则它将切片
将指定为
之后的所有内容;否则,它将slice
sfrom
之后的所有内容。如果其中任何一个是-1
,它将获得一个空切片
下一部分在移除的开始位置之前向右截断数组
最后一部分在数组的末尾重新插入
rest
(要删除的范围后的部分)。一旦您了解了函数的行为,就不难看出发生了什么。顺便说一句,这句话背后的逻辑在文章的底部解释了。为什么不改用.splice
呢?@TimDown你能推荐另一个功能来做同样的事情,但可能会让它更清楚吗?@minitech用什么方式?谢谢。@thomas:Array#splice(开始,长度)
做的事情也差不多。也可以同时插入图元。这就是它的目的。唯一需要注意的是,它不支持长度的负值。一旦您了解了函数的行为,就不难看出发生了什么。顺便说一句,这句话背后的逻辑在文章的底部解释了。为什么不改用.splice
呢?@TimDown你能推荐另一个功能来做同样的事情,但可能会让它更清楚吗?@minitech用什么方式?谢谢。@thomas:Array#splice(开始,长度)
做的事情也差不多。也可以同时插入图元。这就是它的目的。唯一需要注意的是,它不支持长度的负值。