将对象转换为数组的最佳方法

tor*_*gen 2 javascript ecmascript-6

我有一个以下语法的对象文字:

const loader = {
    "0": "b",
    "1": "a",
    "2": "r",
    // arbitrary extra fields:
    "foo": 123,
    "quux": 456,
}
Run Code Online (Sandbox Code Playgroud)

我想将它转换为数组["b", "a", "r"]然后转换为字符串"bar",这是我的最终目标.我不需要任何额外的字段,如果有的话,可以安全地丢弃它们.

它很诱人Array.from(loader),但不幸的是Array.from期望length属性出现,我没有.

鉴于在我的情况下不保证对象文字键顺序,这是我迄今为止提出的最简洁的解决方案:

function convert(obj) {
    const a = [];
    for (const k in obj) {
        a[k] = obj[k];
    }
    return a.join('');
}
Run Code Online (Sandbox Code Playgroud)

虽然我不喜欢它,但它对我来说似乎是多余的和不优雅的.有什么我可能错过的吗?我可以自由使用ES6中的任何东西.

Nin*_*olz 5

您可以转换对象的数组并将连接的值作为字符串.

var loader = { 0: "b", 1: "a", 2: "r", foo: 123, quux: 456 },
    string = Object.assign([], loader).join('');
    
console.log(string);
Run Code Online (Sandbox Code Playgroud)