了解数组删除功能

时间:2012-08-06 15:06:43

标签: javascript

我发现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)对于初学者而言;也许一旦我理解了,其余的将变得更加清晰。任何有助于确切了解这里发生的事情的人都非常感激。感谢。

2 个答案:

答案 0 :(得分:1)

第一部分在切片之后获取数组的其余部分。如果您指定to,则slice之后的所有内容都会to;否则,slice from后的所有内容。如果其中任何一个是-1,它就会得到一个空切片。

下一部分将数组截断到删除的起始位置之前。

最后一部分在数组末尾重新插入rest(要删除的范围之后的部分)。

答案 1 :(得分:0)

如果||的左侧是真值,它将返回左侧。否则它将返回右侧。