我有一个像下面的哈希

 a ={
     0: [0, "A9"],
     2: [0, "A9.4"],
     8: [0, "A9.1"],
     6: [1, "A9.5"],
     5: [0, "A9.2"],
     7: [2, "A9.3"]
 };


我需要一个与每个Value数组的第二个元素相对应的排序数组。

即如果我的数组是a = {key: [value_1_integer, value_2_string]}的形式

我需要按value_2_string对哈希进行排序,因此结果数组为

result = [0, 8, 5, 7, 2, 6]

最佳答案

您可以在带有回调的键上应用Array#sort,该回调将属性的第二个元素进行排序。



var object = { 0: [0, "A9"], 2: [0, "A9.4"], 8: [0, "A9.1"], 6: [1, "A9.5"], 5: [0, "A9.2"], 7: [2, "A9.3"] },
    keys = Object.keys(object).sort(function (a, b) {
        return object[a][1].localeCompare(object[b][1]);
    });

console.log(keys);

关于javascript - Javascript按数组中的值对哈希进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37548218/

10-11 06:28