我正在尝试对 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/