javascript - 使用保存键按属性值对 Javascript 对象数组进行排序

标签 javascript arrays sorting properties

如何使用保留字符串键按属性“成本”对对象数组进行排序?

开始数组:

aparts: {
    apart1 : {id: "1", status: 2, cost: 10033450},
    apart2 : {id: "2", status: 2, cost: 5214000},
    apart3 : {id: "3", status: 2, cost: 7314300},
    apart4 : {id: "4", status: 1, cost: 9261700}    
}

要数组:

aparts: {
    apart2 : {id: "2", status: 2, cost: 5214000},
    apart3 : {id: "3", status: 2, cost: 7314300},
    apart4 : {id: "4", status: 1, cost: 9261700},
    apart1 : {id: "1", status: 2, cost: 10033450}   
}

最佳答案

不保证属性的顺序。参见,例如:

https://stackoverflow.com/a/5525820/1250301

如果你想要有序的东西,那么你需要使用数组。转换非常简单:

var aparts = {
    apart1 : {id: "1", status: 2, cost: 10033450},
    apart2 : {id: "2", status: 2, cost: 5214000},
    apart3 : {id: "3", status: 2, cost: 7314300},
    apart4 : {id: "4", status: 1, cost: 9261700}    
};

var arr = Object.keys(aparts).map(function(k) { return aparts[k]; }).sort(function(a,b) { return a.cost - b.cost });

console.log(arr);

关于javascript - 使用保存键按属性值对 Javascript 对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309523/

相关文章:

javascript - 强制 flexbox div 收缩以保持所有元素适合屏幕

javascript - 对零件号进行四舍五入/向上取整以匹配总计值

javascript - 缩短 Javascript if-else 结构

php - MYSQL 自然排序不符合预期

java - 对包含非西方字符的字符串进行排序

javascript - onhashchange 的替代品?

java - java.lang.ArrayIndexOutOfBoundsException : 0 是什么意思

C - 矩阵上错误的打印值

java - 在 Java 中序列化 Longs 数组的最紧凑方法

javascript - 如何正确使用字段对数组进行排序