オブジェクトの配列に jQuery.map() を使用して配列の配列を返す方法 質問する

オブジェクトの配列に jQuery.map() を使用して配列の配列を返す方法 質問する

jQuery を使用して、マップを使用してオブジェクトの配列を配列の配列に変換したいと思います。

たとえば、次のような場合です:

var ObjArr = [{ a:1,b:2 },{ a:2,b:3 },{ a:3,b:4 }];
var ArrArr = $.map(ObjArr, function(n,i){
   return [ n.a, n.b ];
});

結果は次のようになります。

ArrArr = [[1,2],[2,3],[3,4]]

ベストアンサー1

とともにjQuery.map()(ドキュメント)そしてmap()(ドキュメント)メソッドでは戻り値を二重にラップする必要があります:

var ArrArr = $.map(ObjArr, function(n,i){
   return [[ n.a, n.b ]];
});

...そうでない場合は、何らかの理由で返される配列が連結されます。このようにして、外側の配列が連結され、その内容 (内側の配列) が次のインデックスに配置されます。

おすすめ記事