} else {
do {
if (i in this) {
rv = this[i ];
}
if ( i >= len)
throw new TypeError(); while (true);
for (; i < len; i ) {
if (i in this )
rv = fun.call(null, rv, this[i], i, this);
return rv;
};
Let 配列 要素は指定された関数を順番に呼び出し、最終的に値を返します。つまり、指定された関数は戻り値 < を使用する必要があります。 🎜>
Array.prototype.reduceRight
名前のとおり、右から左に
コードをコピー
コードは次のとおりです:
Array.prototype.reduceRight = function(fun /*,Initial*/) {
var len = this.length >>>
if (typeof fun != " function")
throw new TypeError();
if (len == 0 && argument.length == 1)
throw new TypeError();
var i = len - 1;
if (arguments.length >= 2) {
var rv = argument[1];
} else {
do {
if (i in this) {
rv = this [i--];
break;
}
if (--i < 0)
throw new TypeError(); while (true); 🎜>for (; i >= 0; i--) {
if (i in this)
rv = fun.call(null, rv, this[i], i, this); >}
return rv;
};
これらに加えて、使用したいメソッドを Array.prototype
に追加できます。たとえば、一般的に使用される toString
コードをコピー
コードは次のとおりです。 Array.prototype.toString = function () { return this .join('');
};
toJson、uniq、compact、reverse などを追加することもできます。
配列拡張は依然として非常に役立ちます開発用:)