我正在尝试使用函数将对象文字转换为数组的数组。
使用我拥有的两个示例对象,我要寻找的最终结果是:
从obj1:[["ugh","grr"],["foo","bar"],["blah",138]]
从obj2:["shambala","walawala"],["foofighter","Barstool"],["blahblah",1382342453]]
这是我能做到的最好,但我一直得到1,我不知道为什么。其他尝试只会得到未定义。
使用我拥有的两个示例对象,我要寻找的最终结果是:
从obj1:[["ugh","grr"],["foo","bar"],["blah",138]]
从obj2:["shambala","walawala"],["foofighter","Barstool"],["blahblah",1382342453]]
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,我不知道为什么。其他尝试只会得到未定义。
Array#push
在向数组中添加元素后返回新的数组长度。 - 4castle