根据数组中的值重新排序对象中的键/值

时间:2015-06-02 17:34:25

标签: javascript arrays underscore.js

刚刚找到了这个

Sort JavaScript object by key

我正在尝试重新排序对象的键/值以使用下划线匹配数组的值

输入

{
    'red':'one',
    'blue':'two',
    'green':'three'
}

要映射到

的数组
['green','red','blue']

预期产出

{
    'green':'three',
    'red':'one',
    'blue':'two'
}

1 个答案:

答案 0 :(得分:0)

JS对象没有固有的顺序(Does JavaScript Guarantee Object Property Order?)。

您可以做的是使用您的数组“应用”订单。 。 。创建具有与对象中的键匹配的条目的数组(如您所示),然后,当您遍历数组时,引用对象中与该数组中的当前值匹配的键。

for (var i = 0; i < theArray.length; i++) {
    if (theObject.hasOwnProperty(theArray[i]) {
        . . . do stuff with theObject[theArray[i]] . . .
    }
}

或者,您可以使用一组对象,它们会赋予值固有的顺序,但会对原始对象中的数据关系以及您访问该数据的方式产生一些影响。

[
    {'green':'three'},
    {'red':'one'},
    {'blue':'two'}
]