javascript - 如何在javascript中对嵌套的JSON数组进行排序
问题描述
我想根据键对下面的嵌套数据进行排序,我有使用.sort
功能但不能使用嵌套数据,即:sortFunction(data,'poolTimeRemain','desc')
,请帮助
更新 JSON 数据。
let data = [{ "rows": [{ "poolTimeRemain": "520 hours", "industry": "Business & Professional Services", }, { "poolTimeRemain": "503 hours", "industry": "Business &专业服务" } ], "button": { "rowspan": 2, "engIds": "a2P3B000000BCOPUA4,a2P3B000000BCQ6UAO" } }, { "rows": [{ "poolTimeRemain": "420 hours", "industry": "商业和专业服务”,},{“poolTimeRemain”:“450小时”,“行业”:“商业和专业服务”}],“按钮”:{“rowspan”:2,“engIds”:“a2P3B000000BCOPUA4,a2P3B000000BCQ6UAO " } }, { "行": [{ "poolTimeRemain":“600 小时”,“行业”:“商业和专业服务”,}],“按钮”:{“rowspan”:2,“engIds”:“a2P3B000000BCOPUA4,a2P3B000000BCQ6UAO”}}]
解决方案
您只需要像平常一样访问rows
和使用.sort
let data = [{
"rows": [{
"title": null,
"role": null,
"relationShip": "Reseller",
"productFamily": "Google Workspace",
"poolTimeRemain": "-520 hours",
"industry": "Business & Professional Services",
"engId": "a2P3B000000BCOPUA4",
"country": null,
"annualRevenue": null,
"accountId": "0013B00000foEbOQAU"
}, {
"title": null,
"role": null,
"relationShip": "Reseller",
"productFamily": "Google Workspace",
"poolTimeRemain": "-503 hours",
"industry": "Business & Professional Services",
"engId": "a2P3B000000BCQ6UAO",
"country": null,
"annualRevenue": null,
"accountId": "0013B00000foEbOQAU",
"cssclass": "removeTopBorder"
}],
"button": {
"rowspan": 2,
"engIds": "a2P3B000000BCOPUA4,a2P3B000000BCQ6UAO"
}
}]
function sortFunction(input, label, dir) {
if (dir == "asc")
return input[0]["rows"].sort((a,b) => (a[label] > b[label]) ? 1 : ((b[label] > a[label]) ? -1 : 0))
else if (dir == "desc")
return input[0]["rows"].sort((a,b) => (a[label] < b[label]) ? 1 : ((b[label] < a[label]) ? -1 : 0))
}
console.log(sortFunction(data, "poolTimeRemain", "desc"))
推荐阅读
- php - 使用 .htaccess 拒绝访问除 / 和 /index.php 以外的其他文件
- python - 尝试获取回归摘要时出错
- android - 如何限制文件格式的 Weblate 检查/自动修复(ia Android、iOS)
- spartacus-storefront - 外部支付通过 post-request 将客户重定向到 webshop-url
- apache-flink - POJO类中ArrayList的序列化
- azure-devops - 如何正确安排 Azure Devops Yaml cron 管道?
- javascript - 如何使用 es6+ 在单行中创建具有条件计算属性名称的对象?
- r - 按 R 中的组按文本计数聚合
- jquery - 从 HTML 元素中获取 img 标签
- javascript - 从下拉列表中获取选定值并将选定值传递到 php 中的提交按钮