JavaScript:如何将字典转换为元素列表?

bro*_*sbp 1 javascript

什么是最优雅的方式来解决这个问题:

{
    'a': 'aa',
    'b': 'bb'
}
Run Code Online (Sandbox Code Playgroud)

进入这个:

[
    ['a', 'aa'],
    ['b', 'bb']
]
Run Code Online (Sandbox Code Playgroud)

McG*_*gle 10

只需遍历键:

var dict = { 'a': 'aa', 'b': 'bb' };
var arr = [];

for (var key in dict) {
    if (dict.hasOwnProperty(key)) {
        arr.push( [ key, dict[key] ] );
    }
}
Run Code Online (Sandbox Code Playgroud)

小提琴 (根据@ Jack的评论更新,仅添加直接属性)

  • 不要忘记`hasOwnProperty()`check :) (4认同)

Aad*_*hah 6

大多数 JavaScript 引擎现在都支持该Object.entries功能:

const list = Object.entries({
    a: "aa",
    b: "bb"
});

console.log(list); // [['a', 'aa'], ['b', 'bb']]
Run Code Online (Sandbox Code Playgroud)

对于较旧的引擎,您可以为它编写一个 polyfill,如下所示:

if (typeof Object.entries !== "function")
    Object.entries = obj => Object.keys(obj).map(key => [key, obj[key]]);
Run Code Online (Sandbox Code Playgroud)

希望有帮助。