我在将这些代码放在一起时遇到了一些问题。
{
name: 'bob',
age: 55,
role: 'baker'
}
想得到:
[[name:'bob'],[age:55],[role:'baker']]
这就是我所拥有的:
function valFunct(obj) {
var values =[];
for(var key in obj){
values.push(obj[key]);
}
return values
}
输出不是我想要的。
答案 0 :(得分:3)
首先,[[name:'bob'],[age:55],[role:'baker']]
不起作用,因为数组的索引应该是数字而不是字符串。你可能正在寻找这样的东西:
var input = {
name: 'bob',
age: 55,
role: 'baker'
};
function transform(obj) {
return Object.keys(obj).map(function(key) {
return { [key]: obj[key] }
});
}
console.log(transform(input));

或者您想将其转换为对象条目(如ES7 Object.entries):
var input = {
name: 'bob',
age: 55,
role: 'baker'
};
function transform(obj) {
return Object.keys(obj).map(function(key) {
return [key, obj[key]];
});
}
console.log(transform(input));

答案 1 :(得分:2)
var person = { first: "rafael", last: "cepeda", age: 24 };
function weird_fn(obj) {
var arr = [];
for (var p in obj) {
var o = {};
o[p] = obj[p];
arr.push(o);
}
return arr;
}
console.log(weird_fn(person));
输出:
[ { first: 'rafael' }, { last: 'cepeda' }, { age: 24 } ]
答案 2 :(得分:-2)
如果您只想要一对数组,则可以修复推送
values.push([key, obj[key]]);