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 に答える