1

在 john resig 博客上找到了他的函数,用于从数组中删除元素。它真的很好用!但我真的不明白如何..

// 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)对于初学者来说;也许一旦我明白了这一点,其余的就会变得更加清楚。非常感谢任何帮助弄清楚这里发生了什么。谢谢。

4

2 回答 2

1

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

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

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

于 2012-08-06T15:19:16.313 回答
0

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

于 2012-08-06T15:14:54.083 回答