将对象拆分为 2 个数组 javascript

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/31629567/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 14:05:37  来源:igfitidea点击:

Split object into 2 arrays javascript

javascriptarraysobject

提问by remtsoy

I've got an object like that

我有一个这样的对象

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

I need to split it into 2 arrays

我需要将它分成 2 个数组

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

回答by jesusverma

Here is the simplest way:-

这是最简单的方法:-

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

for more please go Standard built-in objects

如需更多信息,请转到标准内置对象

回答by deleted user

The simplest & most elegant way to do this:

最简单和最优雅的方法来做到这一点:

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

回答by bhspencer

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

回答by Farkhat Mikhalko

The simplest way - iterate over object properties(key, value)

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

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

回答by dotnetom

You can loop over properties and add properties to arr1and values to arr2. You can use this code to achieve that:

您可以遍历属性并将属性添加arr1arr2。您可以使用此代码来实现:

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]

回答by dakab

Simple:

简单的:

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

回答by Andreas Grünh

You have to iterate over every attribute of your object:

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

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

回答by Anil Koppula

Use Object.getOwnPropertyNames(obj)to get the Keys of obj, and for values I'm using the for loop.

使用Object.getOwnPropertyNames(obj)获得obj的钥匙,和值我使用for循环。

JavaScript:

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)

Output:

输出:

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