开发者

Separate key and value pairs into two arrays

What would be the best way to go about separating the key and values into two different arrays so that this -

var data = {"A Key": 34, "Another Key": 16, "Last Key": 10};

Would become this -

data1 = ["A Key", "Another Key", "Last Key"];
data2 = [34, 开发者_如何转开发16, 10];

Thanks.


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]);

}
  1. Set up two different blank arrays.
  2. Iterate through the enumerable properties of the object.
  3. If data does not have this property explicitly (i.e. not higher up the prototype chain), skip this iteration.
  4. Push the key and its value to their respective arrays.

jsFiddle.


This function will split the data object into a keys and a values array. It returns an object, containing both arrays.

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};
}


data1=[];
data2=[]
for (x in data) {
   data1.push(x);
   data2.push(data[x]);
}


You can loop through the properties with a for in loop, and then just assign them to arrays as needed.

Make sure you check whether the key is a property of the object, and not of the prototype.

var data1 = [];
var data2 = [];

for (var key in p) {
  if (p.hasOwnProperty(key)) {
    data1.push(key);
    data2.push(p[key]);
  }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜