通过javascript中给定的键值序列对对象进行排序

时间:2018-01-05 07:02:04

标签: javascript object

我有一个数组和一组对象。无法按给定键对该对象进行排序。

var a = ['e','a','c','d','b'];
var b = {'d':'12','e':'23','c':'34','b':'45','a':'56'};
var c = {};

for(var i=0; i<a.length; i++){
    for(var j in b){
        if(a[i] == j){
            c[j]=b[j]
        }
    }
}
console.table(c);

enter image description here

2 个答案:

答案 0 :(得分:0)

这是一个键值映射。维持插入密钥的顺序会破坏O(1)插入时间的好处。

为什么要对它进行排序?如果需要,最好维护一组键值对并对它们进行排序以便以后使用。对于你的情况,

arr = [["orange", 10],["appple", 5], ["banana", 20], ["cherry", 13]];

使用自定义排序功能

arr.sort = function(a,b) {
    return a[1]>b[1]? 1:a[1]<b[1]?-1:0;
}

应用排序,

keysArr.sort() 遍历已排序的keysArr并使用作为键来检索值的元素。

答案 1 :(得分:0)

这是你正在寻找的东西。

var a = ['e','a','c','d','b'];
var b = {'d':'12','e':'23','c':'34','b':'45','a':'56'};
var c = {};

a.forEach((val) => {
 c[val] = b[val];
});

console.log(c)