javascript - 使用 ES6 特性将对象转换为数组

标签 javascript arrays ecmascript-6

给定一个 javascript 对象,如何将其转换为 ECMAScript-6 中的数组?

例如,给定:

 var inputObj = {a:'foo', b:[1,2,3], c:null, z:55};

预期的输出是:

 ['foo', [1,2,3], null, 55]

结果中元素的顺序对我来说并不重要。

最佳答案

使用 (ES5) Array::mapkeysarrow function (仅针对简短语法,而非功能):

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

很遗憾,没有object iterator已经成为 ES6 本地人。

关于javascript - 使用 ES6 特性将对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25217706/

相关文章:

javascript - 如何从多个类中获取数据属性值

javascript - 如何使用来自 async.js 的 Promise 进行编码?

php - 如何在php中存储大量数据?

javascript - 经典继承与原型(prototype)继承的区别

javascript - "can' t 创建隐藏全局属性的重复变量”

javascript - Javascript 电子邮件中的正则表达式验证

php - JavaScript 中的正则表达式搜索

javascript - VueJS Uncaught ReferenceError

arrays - 如何获取字符串数组的大小

arrays - 使用python考虑每条线的交点对线进行分组