1

私はJavascriptが初めてで、配列の項目を配列に入れ替えたいと思っています。例:

{
    "data": [
        [null, 1353064450],
        [null, 1353064460],
        [null, 1353064470],
        [null, 1353064480],
        [null, 1353064490]
        ],
    "label": "cpu"
}

なる必要があります:

{
    "data": [
        [1353064450, null],
        [1353064460, null],
        [1353064470, null],
        [1353064480, null],
        [1353064490, null]
        ],
    "label": "cpu"
}

おそらく、配列を反復処理して新しい配列を作成する必要がありますか? どんな指針も素晴らしいでしょう!

4

2 に答える 2

3

最新の JS を使用すると、次のことができますobj.data = obj.data.map(([x, y]) => [y, x])

ブラウザ間でのサポートはパッチが適用される可能性があるため、少なくとも近い将来、これを ES5 に変換するトランスパイラを使用する必要があります。

元の答え:

Array.reverse次の方法を使用します。

var obj = {
    "data": [
        [null, 1353064450],
        [null, 1353064460],
        [null, 1353064470],
        [null, 1353064480],
        [null, 1353064490]
        ],
    "label": "cpu"
};
for(var i=0; i< obj.data.length; i++){
     obj.data[i].reverse();
}
于 2012-11-16T12:59:30.183 に答える
0

最新のブラウザー(IE9 以降など)で機能する楽しい方法を次に示します。

response.data.forEach(Function.call.bind([].reverse));

または、 (上記のように)それ自体が値で動作するメソッドにバインドされた値を持つ.callメソッドが必要な場合に、これを頻繁に行う場合は、再利用可能なバインダーを作成できます。thisthis.call

var callBind = Function.bind.bind(Function.call);

  // Then use it like this
response.data.forEach(callBind([].reverse));
于 2012-11-16T13:14:16.410 に答える