javascript - 按顺序获取 JSON 值并保持相应名称的顺序

标签 javascript arrays json

我目前有一些 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/

相关文章:

java - @Consumes 不适用于 JSON

javascript - JQuery 在按钮单击时传递变量

javascript - 我怎么知道我已经达到了 Node 中定义的线程限制?

php - 多维键/值数组写入 MySQL 表

arrays - `+=` block 内的 `<<` 和 `each_with_object` 之间的区别

java - 如何在 Json 树中按名称查找节点?

用于显示高级自定义字段的 JSON API - WordPress

JavaScript/JQuery 改变滚动背景

使用 Webpack 的 Javascript 模块

c - 指针的问题 - C