use*_*568 1 javascript sorting
let o = {
a: {value: 3},
b: {value: 1},
c: {value: 4},
d: {value: 2}
};
Run Code Online (Sandbox Code Playgroud)
我们知道c> a> d> b,所以输出应该是
{
a: {value: 3, order: 2},
b: {value: 1, order: 4},
c: {value: 4, order: 1},
d: {value: 2, order: 3}
}
Run Code Online (Sandbox Code Playgroud)
如何在js中实现?
您可以使用对象的值对键进行排序,并将顺序分配给给定的键.
let o = { a: { value: 3 }, b: { value: 1 }, c: { value: 4 }, d: { value: 2 } };
Object
.keys(o)
.sort((a, b) => o[b].value - o[a].value)
.forEach((k, i) => o[k].order = i + 1);
console.log(o);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)