1

通常の代わりに $.map 関数を使用してそれを行う方法について混乱しています$.each。このようなjsonデータがあります。

var arr = {
 "x1" :[11,22,33],
 "y1":[44,55,66],
 "y2":[77,88,99]
};

結果は array = [[x1,y1,y2], ...] である必要があります

var result = [[11,44,77],[22,55,88],[33,66,99]];

そして、関数を動的にしたいのですが、arr.x1などに依存してはいけません。たとえば、次のような配列を指定すると

var arr2 = {
 "aaa" :[11,22,33],
 "sss":[44,55,66],
 "dd":[77,88,99],
 "dddd":[77,88,99],
};

4 つのサブ配列があるため、上記のようにすべての配列を動的に合計する必要があるため、結果はそれぞれ 4 つの要素の 3 つのサブ配列になるはずです。etcでできるはずです$.eachが、目的は$.mapの学習です。

更新: 私の推測では、純粋な $.map ソリューションは、ネストされたマップのようなものになります。

_elements = $.map(_elements, function(e) {
    return [$.map(e,function(v) {
        return v;
    })];
}); 
4

1 に答える 1

3

次のように配列を構築できます。

var arr = {
 "x1" :[11,22,33],
 "y1":[44,55,66],
 "y2":[77,88,99]
};
var keys = Object.keys(arr), result = [], l=arr[keys[0]].length;
for(var i=0; i<l; i++) result.push($.map(keys, function(k){ return arr[k][i] }));

これにより、求めている配列が正確に構築されます。

デモンストレーション

于 2013-10-04T16:01:39.407 に答える