javascript JS在javascript中按值排序Map或Object

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript JS在javascript中按值排序Map或Object相关的知识,希望对你有一定的参考价值。

var arr = [];

//IE 不支持
// can also use Array.from polyfill here
//for(var el of _this.repeatedCourseNumMap){
	//arr.push(el);
//}

//IE 支持
_this.repeatedCourseNumMap.forEach(function (value, key) {
        arr.push([key, value]);
});

arr.sort(function (x, y) {
    return x[0].slice(0, x[0].indexOf(':')) - y[0].slice(0, y[0].indexOf(':'));
});

//IE 不支持
//var sorted = new Map(arr);

//IE 支持
var sorted = new Map();
arr.forEach(function(e){
	sorted.set(e[0], e[1]);
});

var messageArr = [];
sorted.forEach(function (value, key) {
    if (value.length > 0) {
        var str = "";
        value.forEach(function (element, index, array) {
            // element: 指向当前元素的值
            // index: 指向当前索引
            // array: 指向Array对象本身
            str = str + '「' + element + '」、';
        });
        
        if (str.length > 0) {
            str = str.substring(0, str.length - 1);
            messageArr.push(StringFormatUtil.Format($.itp.i18n.SE1G040.MSG_W_0011, '「' + value[0].slice(0, value[0].indexOf('-')) + '」', str));
        }
    }
});

//对象排序
//Object.keys(objs).sort()可以获取到排好序的keys
var objs = {
    f: {
        id: 2,
        name: '2'
    }, 
    a: {
        id: 3,
        name: '3'
    }, 
    c: {
        id: 1,
        name: '1'
    }
};
// 自定义排序规则,按对象的id排序
var sortedObjKeys = Object.keys(objs).sort(function(a, b) {
    return objs[b].id - objs[a].id;
});

// 按默认排序规则,按对象的key排序
var sortedObjKeys = Object.keys(objs).sort();
var arr = [];
for (var index in sortedObjKeys) {
    console.log(sortedObjKeys[index]);
    console.log(objs[sortedObjKeys[index]]);
    console.log('----------');
    arr.push(objs[sortedObjKeys[index]);
}

objs.sort(function(a, b){
    return a.id > b.id;
});

var obj = {
    1 :[{userID:'1'}],
    2 :[{userID:'2'}],
    H :[{userID:'3'}],
    Z :[{userID:'4'}],
};
var objKeys = Object.keys(obj);
objKeys.sort((a,b) =>{
    return a>b;
}).map((val) => {
    console.log("userID "+ obj[val][0].userID)
});
/ 输出
// userID 1
// userID 2
// userID 3
// userID 4

以上是关于javascript JS在javascript中按值排序Map或Object的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript(JS)之Javascript对象

如何在swift中从.js文件中调用javascript函数

javascript中直接写php代码的方法

在节点 js 中使用 javascript 函数

使用 Javascript/Node.js 在代码中执行 mongoimport

如何给网站中javascript增加版本号?