如何从具有多个键的 json 对象收集数据并将所有值推送到单个键:值数组

约翰多

我有一个示例 json 对象:

var jsonString = '[{ "name":"John", "age":30, "car":Mercedes},{ "name":"Jimy", "age":32, "car":Audi},{ 
"name":"Mia", "age":22, "car":Renault},{ "name":"Frank", "age":35, "car":null }]';

var data = JSON.parse(jsonString);

我想从数据数组中获取最新的两个数据并创建一个 key:value 数组,以便每个 json 属性在数组中有一个键,并且所有 json 对象的所有值都存储在相应的键下,因此,例如,我想要的结果通常是数组 [{key: data_array_for_that_key}] 或特别是:

output=[{name: [Frank, Mia]}, {age: [35,22]}, {car: [null, Renault]}......]

我试过这样的事情:

var output = [];

  data.slice(-2).forEach((d, i) => {
    Object.keys(d).forEach((key) => {
      output.push({[key] : d[key]});
    });
  });
  console.log(output);

但它为每个 json 对象创建了一个键和值,这不是我想要的。

我该如何解决这个问题?

尼娜·舒尔茨

您可以使用哈希表对相同的键进行分组,并为每个新键推送一个新对象output

var jsonString = '[{ "name":"John", "age":30, "car":"Mercedes"},{ "name":"Jimy", "age":32, "car":"Audi"},{"name": "Mia", "age": 22, "car": "Renault"},{"name": "Frank","age": 35,"car": null}]',
    data = JSON.parse(jsonString);
    output = [],
    temp = [];

data.slice(-2).forEach(o => Object.entries(o).forEach(([k, v]) => {
    if (!temp[k]) output.push({ [k]: temp[k] = [] });
    temp[k].push(v);
}));

console.log(output);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何访问每个键具有多个值的JSON对象?

如何从JSON对象数组中删除具有特定键/值对的所有JSON对象?

如何解析具有多个相同键的 json 响应?

具有值数组的json键-如何解析

排序对象数组,并将具有相同键/值对的对象推送到新数组

格式化json数据。如何合并具有与键相同值的json数组?

如何将 React 数组转换为具有相同键和值的 JSON 对象?

如何从pyspark中的spark数据帧行转换具有多个键的JSON字符串?

如何读取json对象中所有键的值并将其添加到状态?

具有多个键的熊猫数据框到json

如何在带有 jq 的 JSON 中排除所有具有特定值的键?

JavaScript / JSON-从多个数组获取具有相同键的值的总平均值

如何使用R解析列中具有多个键的json

如何替换JSON对象数组中某个键的所有值

如何使用FOR JSON PATH将具有键/值对的表查询到JSON对象中?

如何在JSON数组中声明两个具有相同键但值不同的JSON对象

对具有多个对象且没有键的 JSON 数组进行排序

使用flutter解析具有多个键的json响应

如何过滤具有多个键的对象

如何创建具有多个键和值数组的NSDictionary

使用JSON和JQ中的特定键获取具有所有值的数组

如何使用knexjs更新json列中具有值的对象键?

如何在具有任意键的对象值的 JSON 之后对 Go 结构进行建模?

如何使用 jq 访问具有不同命名键的对象中的 json 值

交换具有不同键的 2 个 json 数据值

如何从具有多个值的JSON文件中提取数据

将字典中具有多个值的字典字典键映射到python中的json

从具有 2 列(键和值)的表中,如何返回带有列值的 json?

如何创建具有多个键和元素的单个对象?