当键是动态时,按值对对象数组进行排序

时间:2016-12-17 23:44:53

标签: javascript arrays sorting

我想对数组对象进行排序。

var obj = [{"UMAIR":410},
        {"ALI":2177},   
        {"JOHN":410},
        {"ANTHENY":410},
        {"FRANKLY":410},
        {"FRONTY":534},
        {"SLIM":534},
        {"ASFUND":534}];

我想用每个对象的整数值对其进行排序。 我想了解下面的代码(我在网上找到):

 obj.sort(function(a, b) {
    return a.price - b.price;
});

但是在这段代码中它使用了价格属性,但我没有'这里有任何特定的财产。

1 个答案:

答案 0 :(得分:2)

您可以尝试排序功能......

wrap

相当于:

obj.sort(function(a,b) {
   return a[Object.keys(a)[0]] - b[Object.keys(b)[0]];
});

编辑,刚刚看到你的编辑,是的你确实找到了它。 您还应该搜索如何从json中提取元素,在您的情况下 Object.keys,

它返回一个包含键字符串的数组。

由于您的Object包含SINGLE键,因此您从数组中获取第一个值(0),然后,您将从a到b减去值。

a,b是数组的条目。他们是对象。

在此Link中,您可以查看排序功能的工作原理

我提供的链接代码

obj.sort(function(a,b) {
   var aValue = a[Object.keys(a)[0]];
   var bValue = b[Object.keys(b)[0]];
   if (aValue > bValue)
     return 1;
   else if (aValue < bValue)
     return -1;
   else
     return 0;
});