如何在ES6中将一个大对象映射到一个数组?

3
假设我有一个大对象。
var object = { a: 1, b: 2, c: 3, d:4, e:5, f:6, g:7, h:8, i:9, j:10 ...};
var array = [];

输出为[1,2,3,4,5,6,7,8,9,10...]。

如何在es6中将对象映射到数组? 请帮我一下。


2
应该输出什么? - gurvinder372
1
以什么顺序? - Nina Scholz
4个回答

3
你可以使用键来排序,并将值返回到一个数组中。

var object = { a: 1, b: 2, c: 3, d:4, e:5, f:6, g:7, h:8, i:9, j:10};
var array = Object.keys(object).sort().map(k => object[k]);

console.log(array);


2
你可以使用 Object.keys()
let arr = Object.keys(obj).map((k) => obj[k])

1

根据您想要支持的浏览器,您可以使用Object.values()来实现,它是ECMAScript 2017的一部分:

Object.values()方法以与for...in循环提供的顺序相同的顺序返回给定对象的自有可枚举属性值的数组...

Object.values()的MDN文档

var
  obj = { a: 1, b: 2, c: 3, d:4, e:5, f:6, g:7, h:8, i:9, j:10 },
  values = Object.values(obj)
;

console.log(values);


这个问题被标记为 ecmascript-6,并在标题中指定了 in es6 - trincot
@trincot 我很清楚;我已经打了标签。这就是为什么我在回答之前提到了这是使用 ECMAScript 2017 中定义的方法,以防 OP 能够利用它。你的评论有些无谓,因为你标记为重复的答案要求使用 jQuery 解决方案。 - James Donnelly
重复问题询问:“有没有更好的方法将对象转换为数组或函数?”而不提jQuery作为“必需品”。我选择了这个重复问题,因为得票最高的答案是一个纯JS解决方案,可以作为回答OP问题的答案。我认为这是合适的。 - trincot
哇,有趣。 - azmul hossain

0
尝试这种简单的方法

var object = { a: 1, b: 2, c: 3, d:4, e:5, f:6, g:7, h:8, i:9, j:10};
var array = Object.keys( object ).map( function(key){ return object[key] } );
console.log(array);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接