【发布时间】:2018-12-28 05:46:22
【问题描述】:
在你投反对票之前:我已经检查了围绕这个问题的所有现有解决方案,但没有一个与此类似。
我想按 image.name(JavaScript 或 jQuery)的字母顺序对这个数组进行排序:
var myArray = [{
creator: {
"firstname": "Sally",
familyname: "Bloomfield"
},
location: {
"lat": 12.123,
lng: 8.846
},
image: {
name: "Hello World",
size: "50x80"
}
},
{
creator: {
firstname: "Bob",
familyname: "Jones"
},
location: {
lat: 31.593,
lng: 96.376
},
image: {
name: "Flowerpower",
size: "40x50"
}
},
{
creator: {
firstname: "John",
familyname: "Walker"
},
location: {
lat: 27.184,
lng: 123.120
},
image: {
name: "Guiness",
size: "33x66"
}
}
];
排序后的数组输出:
[{
creator: {
firstname: "Bob",
familyname: "Jones"
},
location: {
lat: 31.593,
lng: 96.376
},
image: {
name: "Flowerpower",
size: "40x50"
}
},
{
creator: {
firstname: "John",
familyname: "Walker"
},
location: {
lat: 27.184,
lng: 123.120
},
image: {
name: "Guiness",
size: "33x66"
}
},
{
creator: {
firstname: "Sally",
familyname: "Bloomfield"
},
location: {
lat: 12.123,
lng: 8.846
},
image: {
name: "Hello World",
size: "50x80"
}
}
]
所以首先图像 Flowerpower 然后 Guiness 然后 Hhello World。
现有的 Javascript 排序功能无法处理,因为我已经尝试过了。甚至可以对这样的结构进行排序吗?
感谢任何帮助。
【问题讨论】:
-
您可以将自己的比较器传递给 JavaScript 排序函数
-
@Jacob:我已经通过发送“image.name”做到了这一点,但被忽略了。
-
你能分享你的代码吗?
-
@Jacob:我使用的是 Bob 的 sortOn 函数:stackoverflow.com/questions/979256/… 然后我就是这样使用的:sortOn (myArray, image.name, false, false);
标签: javascript jquery arrays sorting object