関数を使用して、オブジェクト リテラルを配列の配列に変換しようとしています。
私が持っている 2 つのサンプル オブジェクトを使用すると、私が探している最終結果は次のようになります。
[ ["ugh","grr"] , ["foo", "bar"] , ["blah" , 138] ]
からobj1
[ "shambala","walawala"] , ["foofighter","Barstool"] , ["blahblah",1382342453] ]
からobj2
var obj1 = {
ugh: "grr",
foo: "Bar",
blah: 138
};
var obj2 = {
shambala: "walawala",
foofighter: "Barstool",
blahblah: 1382342453
};
var piece1 = Object.keys(obj1);
var piece2 = Object.values(obj1);
var result = [ ];
for (var i = 0; i < piece1.length; i++) {
result.push([piece1[i] , piece2[i]])
}
console.log(result)
上記のことから、次のことを達成できました。
[ ["ugh","grr"] , ["foo", "bar"] , ["blah" , 138] ]
からobj1
しかし、関数を介して同じ出力を達成する方法について困惑しています。
これは簡単なことのように思えます。
function objToArray(objectLiteral) {
var piece1 = Object.keys(objectLiteral);
var piece2 = Object.values(objectLiteral);
var result = [ ];
for (var i = 0; i < piece1.length; i++) {
return result.push([piece1[i] , piece2[i]])
}
}
console.log(objToArray(obj1))
これが私にできる最善のことですが、1 を取得し続け、その理由がわかりません。他の試みは未定義で終わります。