javascript - 从 JSON 对象按顺序将值存储在数组中
问题描述
我在 JSON 响应下面有这个。JSON 中的 Order 属性可以按 3、7、8、9 等随机顺序出现。
var respponseArr = '{"Test3_3":{"Name":"Test3","Notes":"This is third note","Order":"3"}, {"Test7_7":{"Name":"Test7","Notes":"This is seventh note","Order":"7"}';
我想遍历这个 JSON 响应并按升序存储在 JSON 对象中,如下所示
var tempArr = '{'Order' : '1','Name': 'Test1', 'Notes': 'This is first Notes'}, {'Order' : '3','Name': 'Test3', 'Notes': 'This is third Notes'}, {'Order' : '7','Name': 'Test7', 'Notes': 'This is seventh Note'}';
JS
var respponseArr1 = JSON.parse(JSON.stringify(respponseArr))
for(var tmp1 in respponseArr1) {
var temp2 = respponseArr1[tmp1];
for(var num in temp2) {
var ndata = temp2[num];
for(var l in ndata) {
console.log(tmp1 + ' -> ' + num + ' -> ' + l + ' = ' + ndata[l]);
}
}
}
解决方案
不要将它们存储为对象,而是尝试将它们存储在数组中。例如:
responseArr = {[{Order: 1},{Order:2},...,{Order: n}]}
这将允许您使用诸如 Sort() 之类的数组方法,其时间复杂度为 n(log n),空间复杂度为 n。
或者
您可以在此处学习 javascript 中的 Map()
新 Map() 全局对象中的所有键值对都被索引。
推荐阅读
- r - 在 R 中创建具有不同参数的函数
- python - 难以理解 Python 中的矩阵运算
- build - 与早期 (0.8.0) 版本相比,A-Frame 的最新稳定版本 (0.9.0) 未能通过 360ImageGallery
- c# - VS17 和 TFS 17 构建要求
- git - 如何合并远程跟踪无 github 分支?
- javascript - 在 QUnit 测试中,只有在测试运行之前获得引用时才会触发 click 事件
- excel - 将字符串变量设置为单元格——应用程序定义的或对象定义的错误
- sql - 如何修复“无法删除对象 'Teams',因为它被 FOREIGN KEY 约束引用”
- graphql - 如何在一个类型中添加多个解析器(Apollo-server)
- java - Collections.sort 不改变列表