1

タイトルは少し紛らわしいかもしれません。しかし、私はそれが明らかだと思います:

var a = ["A1", "B13", "C123"];

要素の最初の値を無視して残りを取得したい。したがって、私の新しい配列は次のようになります。

var b = ["1", "13", "123"];
4

4 に答える 4

5

.map()元の変更された値の新しい配列を作成するために使用します。

var b = a.map(function(item) {
    return item.slice(1);
});

これにより、元の配列が反復処理され、配列内の各項目が関数の最初の引数として渡され、関数の戻り値が新しい配列の値として設定されます。

IE8 以前の場合は、パッチを実装する必要があります。1 つはMDN から入手できます。

于 2013-04-21T20:30:27.350 に答える
3

を使用.mapすると、既存の配列のすべての要素を関数に渡すことによって生成される新しい配列を返すことができます。

var b = a.map(function(v) {
    return v.substr(1);
});

.map古いブラウザーには存在しない ES5 関数であることに注意してください。シムは上記のリンクで入手できます。

于 2013-04-21T20:30:35.053 に答える
2
var b = [];

for (var i = 0; i < a.length; ++i)
{
    b[i] = a[i].substring(1);
}

ライブデモ

于 2013-04-21T20:30:35.813 に答える
1

forEach方法_

var a = ["A1", "B13", "C123"],
    b = [];

a.forEach(function (element) {
    b.push(element.slice(1));
});

console.log(b);

jsfiddle

map方法_

var b = a.map(function (element) {
    return element.slice(1);
});

for方法_

var l = a.length;
var b = [];

for (var i = 0; i < l; i += 1) {
    b.push(a[i].slice(1));
}

究極の速度は依然としてforループです(おじいちゃんを除いて)

したがって、上記のすべてを含めることになったので、それらすべての祖父母を方程式から除外するのは正しくないと感じました.

while方法_

var b = [];
var i = 0;
var l = a.length;

while (i < l) {
    b.push(a[i].slice(1));
    i += 1;
}

ちょっとした笑いのために、RegExp と jquery のバージョンも含めます。

lodashには独自のマップ機能もあります)

あなたはjsperfを見ることができます

于 2013-04-21T20:32:00.230 に答える