【发布时间】:2017-05-31 19:25:34
【问题描述】:
我有一组看起来像这样的对象:
var array = [{
key: {name: "C Some name", id: 123},
value: {value: 1, element:"some element"}
}, {
key: {name: "A Name 2", id: 1234},
value: {value: 4, element:"some element 2"}
}, {
key: {name: "B Other name", id: 1235},
value: {value: 2, element:"some element 3"}
}]
我想按名称(在键对象内部)和值(在值对象内部)对这个数组进行排序。 按名称排序的结果应该返回这个结果:
[{
key: {name: "A Name 2", id: 1234},
value: {value: 4, element:"some element 2"}
}, {
key: {name: "B Other name", id: 1235},
value: {value: 2, element:"some element 3"}
}, {
key: {name: "C Some name", id: 123},
value: {value: 1, element:"some element"}
}]
按值排序的结果应该是这样的:
[{ key: {name: "C Some name", id: 123},
value: {value: 1, element:"some element"}
}, {
key: {name: "B Other name", id: 1235},
value: {value: 2, element:"some element 3"}
}, {
key: {name: "A Name 2", id: 1234},
value: {value: 4, element:"some element 2"}
}]
我试过按名称排序:
array.sort(a,b){
return a.key["name"] - b.key["name"];
}
这是按值排序:
array.sort(a,b){
return a.key["value"] - b.key["value"];
}
但它不起作用。如何对这个数组进行排序?
【问题讨论】:
-
a.key[name]表示您有一些名为name的变量,并且您希望使用匹配的名称访问a.key的属性。您是否尝试过a.key.name以获得正确的值? -
我应该在我的问题中设置 a.key["name"] 什么等于 a.key.name
标签: javascript arrays sorting