将键和值分成两个不同的数组的最佳方法是什么 -
var data = {"A Key": 34, "Another Key": 16, "Last Key": 10};
会成为这个 -
data1 = ["A Key", "Another Key", "Last Key"];
data2 = [34, 16, 10];
感谢。
答案 0 :(得分:7)
var data = {"A Key": 34, "Another Key": 16, "Last Key": 10};
var data1 = [],
data2 = [];
for (var property in data) {
if ( ! data.hasOwnProperty(property)) {
continue;
}
data1.push(property);
data2.push(data[property]);
}
data
没有明确地具有此属性(即不高于原型链),请跳过此迭代。答案 1 :(得分:2)
此函数将data
对象拆分为键和值数组。它返回一个包含两个数组的对象。
function splitObj(data){
var keys = [],
vals = [];
for (var l in data) {
if (data.hasOwnProperty(l){
keys.push(l);
vals.push(data[l]];
}
}
return {keys: keys,vals:vals};
}
答案 2 :(得分:1)
data1=[];
data2=[]
for (x in data) {
data1.push(x);
data2.push(data[x]);
}
答案 3 :(得分:1)
您可以使用for in
循环遍历属性,然后根据需要将它们分配给数组。
确保检查密钥是否是对象的属性,而不是原型的属性。
var data1 = [];
var data2 = [];
for (var key in p) {
if (p.hasOwnProperty(key)) {
data1.push(key);
data2.push(p[key]);
}
}