排序数组的键和值,键是Month

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序数组的键和值,键是Month相关的知识,希望对你有一定的参考价值。

我有一个数组,其中键作为月份,值为该月的总费用。

[May: 629, April: 300, March: 50]

我想根据密钥即月份来订购这个数组。我想要的结果:

[ March: 50,  April: 300, May: 629]

我试图通过这样做来对密钥进行排序:

var months = ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"];

var sorted_keys = Object.keys(arr).sort(function(a,b){
  return months.indexOf(a)
           - months.indexOf(b);
});

我如何对整个阵列进行排序?

任何帮助都感激不尽。

答案

尝试这样的事情:

var op3MembrosDisp = [];

var w = { id: 2, name: 'karen' };
op3MembrosDisp.push(w);

var w = { id: 1, name: 'Joseph' };
op3MembrosDisp.push(w);

op3MembrosDisp.sort(
            function (a, b) {
                var aId = a.name;
                var bId = b.name;
                return ((aId < bId) ? -1 : ((aId > bId) ? 1 : 0));
            }
        );
另一答案

假设您的输入是一个字符串数组,其格式类似于“month:expense”,那么我们的想法是从该条目中提取月份,并根据月份对该数组进行排序。现在要对数组进行排序,我们使用每个月排名的月份图。

var monthsHash = {
    "January": 1,
    "February": 2,
    "March": 3,
    "April": 4,
    "May": 5,
    "June": 6,
    "July": 7,
    "August": 8,
    "September": 9,
    "October": 10,
    "November": 11,
    "December": 12
};

var input = ["May: 629", "April: 300", "March: 50"]

input.sort(function (a, b) {
    var a_month = a.split(":")[0],
        b_month = b.split(":")[0],
        a_month_rank = monthsHash[a_month],
        b_month_rank = monthsHash[b_month];

    return a_month_rank - b_month_rank;
});

console.log(input);

以上是关于排序数组的键和值,键是Month的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bash 中间接获取关联数组的键和值?

如何通过 jq 中这些键的键和值对 json 文件进行排序

如何将对象数组操作为不同的键和值? [复制]

如何获取与php数组中的键和值相关的所有数组值

与参数匹配时返回对象的键和值[重复]

PHP获取数组最后一个元素的键和值