将所有值从对象推送到数组? (JavaScript的)

时间:2015-02-19 10:37:23

标签: javascript arrays loops object

我刚开始做程序员。有人可以帮我解决这个问题吗?到目前为止,我所拥有的只是:

var myArr = [];
for (var k in input) {
    myArr.push(

我是在正确的轨道上吗?

编写一个循环,将对象中的所有值推送到数组。

input: {two: 2, four: 4, three: 3, twelve: 12}
output: [2, 4, 3, 12]

7 个答案:

答案 0 :(得分:2)

无循环:

const input = {two: 2, four: 4, three: 3, twelve: 12};
const myArr = Object.values(input);
console.log(myArr);
// output: [2, 4, 3, 12]

答案 1 :(得分:1)

input = {二:2,四:4,三:3,十二:12}

const output = Object.keys(input).map(i => input [i])

[2,4,3,12]

这将帮助您找到确切的输出。

此链接将为您提供更多信息 https://medium.com/chrisburgin/javascript-converting-an-object-to-an-array-94b030a1604c

答案 2 :(得分:0)



var myArr = []; 

var input = {two: 2, four: 4, three: 3, twelve: 12};

for (var k in input) { 
    myArr.push(input[k]);
}
alert(myArr);




答案 3 :(得分:0)

data.input[k]就是你想要的

var data = {input: {two: 2, four: 4, three: 3, twelve: 12}}, myArr = [];

for(k in data.input) myArr.push(data.input[k]);

答案 4 :(得分:0)

如果您使用javascript native编写它,请使用push()函数:

例如:

var persons = {roy: 30, rory:40, max:50};

var array = [];

// push all person values into array
for (var element in persons) {
    array.push(persons[element]);
}
祝你好运

答案 5 :(得分:0)

使用underscore.js

var myArr = _.values(input);

它是一个非常有用的库,gzip时只有5.3k

答案 6 :(得分:0)

for in循环的每次迭代中,变量k被赋予对象input中的下一个属性名称,因此您必须推送input[k]。对于对象具有其原型属性的情况,您只想将对象自己的属性推送到数组(这可能是您想要做的),您应该使用hasOwnProperty

var input: {two: 2, four: 4, three: 3, twelve: 12}
var myArr = [];
for (var k in input) {
//  if( input.hasOwnProperty( k) ) { //not necessary
    myArr.push( input[k] );
//  } 
}

请注意for in以任意顺序循环遍历对象,即数组中项目的顺序可能与您预期的不同。

另请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

编辑:正如Alnitak在对OP的评论中所提到的,现在可能没有必要使用hasOwnPropery()