给定javascript对象,如何将其转换为ECMAScript-6中的数组?
例如,考虑到:
var inputObj = {a:'foo', b:[1,2,3], c:null, z:55};预期产出将是:
['foo', [1,2,3], null, 55]结果中元素的顺序对我来说并不重要。
发布于 2014-08-09 11:33:12
使用(ES5) Array::map在keys上使用箭头函数 (仅用于简短的语法,而不是功能):
let arr = Object.keys(obj).map((k) => obj[k])真正的ES6风格将是编写一个生成器,并将其转换为一个数组:
function* values(obj) {
for (let prop of Object.keys(obj)) // own properties, you might use
// for (let prop in obj)
yield obj[prop];
}
let arr = Array.from(values(obj));令人遗憾的是,没有一个对象迭代器能够进入ES6本地人。
发布于 2017-08-03 15:49:30
只需使用Object.values
Object.values(inputObj); // => ['foo', [1,2,3], null, 55]发布于 2014-08-09 10:54:17
我喜欢老式的方式:
var i=0, arr=[];
for (var ob in inputObj)
arr[i++]=ob;老派以很大的优势赢得了杰斯普夫试验,如果不是上升的话。有时新增加的是“错误的特性”。
https://stackoverflow.com/questions/25217706
复制相似问题