我发现t his function on the john resig blog用于从数组中删除元素。它的效果非常好!但我真的不明白......
// 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);
};
我对此声明发生了什么感到困惑:(to || from) + 1 || this.length)
对于初学者而言;也许一旦我理解了,其余的将变得更加清晰。任何有助于确切了解这里发生的事情的人都非常感激。感谢。
答案 0 :(得分:1)
第一部分在切片之后获取数组的其余部分。如果您指定to
,则slice
之后的所有内容都会to
;否则,slice
from
后的所有内容。如果其中任何一个是-1
,它就会得到一个空切片。
下一部分将数组截断到删除的起始位置之前。
最后一部分在数组末尾重新插入rest
(要删除的范围之后的部分)。
答案 1 :(得分:0)
如果||
的左侧是真值,它将返回左侧。否则它将返回右侧。