javascript - 按嵌套属性对 JSONarray 进行排序

标签 javascript json sorting

我正在尝试对 JSON 值数组进行排序,但要排序的属性嵌套在 JSON 对象中。对于此示例,将使用 data.nested-name 完成排序。

我尝试使用https://stackoverflow.com/a/8175221/2053159但没有任何成功。

[
{
name: 'a75',
data: {nested-name:"zz\, Hello// There="}},
{
name: 'z32',
data: {nested-name:"aa\, Hello// There="}},
];

预期输出 ->

[
{
name: 'a75',
data: {nested-name:"aa\, Hello There="}},
{
name: 'z32',
data: {nested-name:"zz\, Hello There="}},
];

嵌套名称确实包含大量反斜杠和正斜杠以及其他特殊字符。 我不使用外部库,请提供使用 native JavaScript 的解决方案。

最佳答案

假设 arr 是你的数组,你可以像这样排序:

arr.sort( ( a, b ) => a.data[ "nested-name" ] > b.data[ "nested-name" ] )

为了获得更高的字符串比较精度,您可以使用 localeCompare

arr.sort( ( a, b ) => a.data[ "nested-name" ].localeCompare(b.data[ "nested-name" ]) )

关于javascript - 按嵌套属性对 JSONarray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45703319/

相关文章:

java - 如何将 URL 中存在的 JSON 数据转换为 java 或 android 中的 JSON 字符串?

java - Collection.sort 的问题

python - 简化python中Excel单元格名称的排序

javascript - AngularJS Web API - IE 不发布表单正文

javascript - 指令加载时间非常长,检查加载时间的方法

javascript - 通过nodejs将mysql(sequelize)表数据导出为json

c# - 按日期时间值对列表框项目排序

javascript - document.getElementById ('myID' 的 JSDoc 类型和 jQuery 元素是什么?

javascript - Object.defineProperty 和返回值

javascript回调函数,变量映射