我目前有一些 JSON 数据,如下所示:
{"data": [
{"student_id": "bobby", "solved": 19},
{"student_id": "smith", "solved": 20}
]}
现在我正在做的是在 for 循环中将求解的值插入一个名为 newData
的数组,如下所示:
newData.push(data['data'][i].solved);
现在我使用这个函数按值对它们进行排序:
newData.sort(function(a,b){
return a-b;
});
太好了,现在我有了一个有序的值数组。但是如何检索与我按顺序排序的这些值对应的名称?如果我可以在两个数组中获得名称和解决方案,那就太好了,但每个索引对应于原始 JSON 数据中的相同内容。我猜一个包含对象和值排序的巨大数组也可以。
最佳答案
您可以先按solved
键对数据进行排序,然后使用map()
以排序的顺序返回两个单独的结果数组。
var obj = {"data": [{"student_id": "bobby", "solved": 19}, {"student_id": "smith", "solved": 20}]}
var newData = obj.data.sort(function(a, b) {
return b.solved - a.solved;
});
var numbers = newData.map(e => e.solved);
var names = newData.map(e => e.student_id);
console.log(numbers);
console.log(names);
关于javascript - 按顺序获取 JSON 值并保持相应名称的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38620950/