将对象拆分为2个数组javascript

时间:2015-07-25 18:08:05

标签: javascript arrays object

我有一个像这样的对象

 obj =   {
    'baz':1,
    'foo':7,
    'zap':12,
    'qax':15
    }

我需要将其拆分为2个数组

arr1 = ['baz', 'foo', 'zap', 'qax']
arr2 = [1, 7, 12, 15]

9 个答案:

答案 0 :(得分:6)

最简单的&最优雅的方式:

var arr1 = Object.keys(obj);
var arr2 = arr1.map(function (k) {
    return obj[k];
});

答案 1 :(得分:4)

这是最简单的方法: -

var arr1 = Object.keys(obj);
var arr2 = Object.values(obj);

了解更多信息,请转到Standard built-in objects

答案 2 :(得分:3)

 obj =   {
    'baz':1,
    'foo':7,
    'zap':12,
    'qax':15
    }

var arr1 = [];
var arr2 = [];

for (var prop in obj) {
   arr1.push(prop);
   arr2.push(obj[prop]);
}

答案 3 :(得分:2)

最简单的方法 - 迭代对象属性(键,值)

obj =   {
    'baz':1,
    'foo':7,
    'zap':12,
    'qax':15
    }

var a = [];
var b = [];
for(var i in obj){
  if(obj.hasOwnProperty(i)){
    a.push(i);
    b.push(obj[i]);
  }
}

console.log(a);
console.log(b);

答案 4 :(得分:1)

您可以遍历属性并将属性添加到arr1,将值添加到arr2。您可以使用此代码来实现:

var obj = { 'baz':1, 'foo':7, 'zap':12, 'qax':15 };
var arr1 = [];
var arr2 = [];
for(var propertyName in obj) {    // loop through properties
    arr1.push(propertyName);
    arr2.push(obj[propertyName]);
}
console.log(arr1);   // prints ["baz", "foo", "zap", "qax"]
console.log(arr2);   // prints [1, 7, 12, 15]

答案 5 :(得分:1)

简单:

<script src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>

答案 6 :(得分:0)

您必须遍历对象的每个属性:

var obj =   {
  'baz':1,
  'foo':7,
  'zap':12,
  'qax':15
}
var keys = [];
var values = [];

for(var x in obj) {
  keys.push(x);
  values.push(obj[x]);
}

答案 7 :(得分:0)

obj =   {
  'baz':1,
  'foo':7,
}

const [vars, vals] = Object.keys(obj).reduce(([a, b], k) => {
   a.push(k)
   b.push(options[k])
   return [a, b]
}, [[], []])

vars //-> ['bar', 'foo']
vals //-> [1, 7] 

要求提供以下内容:

答案 8 :(得分:0)

使用Object.getOwnPropertyNames(obj)获取obj的键,对于值,我使用了for循环。

JavaScript:

var obj =  {
    'baz':1,
    'foo':7,
    'zap':12,
    'qax':15
    }
var j=0, val=[];
    for(let x in obj) {
        (val[j++] = obj[x]);  //storing the value of obj in val
    }

console.log(Object.getOwnPropertyNames(obj))
console.log(val)

输出:

[ 'baz', 'foo', 'zap', 'qax' ]
[ 1, 7, 12, 15 ]