我需要完成keysAndValues函数,以便它接受一个对象并将键和值作为单独的数组返回。例如:
keysAndValues({k: 11, l: 12, m: 13}) // should return [['k', 'l', 'm'], [11, 12, 13]]
答案 0 :(得分:3)
试试这个
function keysAndValues(data){
var keys = Object.keys(data),
values = keys.map(function (key) {
return data[key];
});
return [keys, values];
}
console.log(keysAndValues({k: 11, l: 12, m: 13}));

Object.keys
- Object.keys()方法返回给定的数组 对象自己的可枚举属性
.map
- map()方法创建一个结果为的新数组 在这个数组中的每个元素上调用一个提供的函数。
<强>更新强>
新方法.values
已添加到Object
,
function keysAndValues(data){
return [Object.keys(data), Object.values(data)];
}
console.log(keysAndValues({k: 11, l: 12, m: 13}));
&#13;
Object.values
- 该方法返回给定对象自身的可枚举属性值的数组,其顺序与for...in
循环提供的顺序相同
答案 1 :(得分:0)
尝试:
function keyValues(obj, keys){
return [keys = Object.keys(obj), keys.map(function(k){return obj[k]})]
}
var result = keyValues({k: 11, l: 12, m: 13});
document.write(JSON.stringify(result))
&#13;
答案 2 :(得分:0)
以老式的方式,定义两个数组并将键和值推入其中。
function keysAndValues(obj) {
var keys = [], values = [];
for (var p in obj) {
keys.push(p);
values.push(obj[p]);
}
return [keys, values];
}
答案 3 :(得分:0)
function keysAndValues(obj) {
var keys = [];
var value = [];
for (key in obj) {
keys.push(key);
value.push(obj[key]);
}
return [keys,value]
}
console.log(keysAndValues({
k: 11,
l: 12,
m: 13
}));