繁体   English   中英

将所有值从对象推送到数组?

[英]Push all values from object to array?

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

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

我在正确的轨道上吗?

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

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

无循环:

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

如果您使用 JavaScript 本机编写它,请使用 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]);
}

祝你好运

输入 = {二: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

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

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

使用underscore.js

var myArr = _.values(input);

这是一个非常有用的库,压缩后只有 5.3k

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM