如何在不使用JQUERY的情况下联接两个JavaScript JSON对象数组?

迪·罗伊

我有两个对象数组(如果我使用的术语不正确,请原谅我。我是JS的新手)。数组datasetdataset2具有带有公共键的对象id我想合并每个对象以形成合并对象的新数组。如下图datasetCombined所示。

dataset = [{​
    "State": "AL",
    "id": 1000,
    "name": "Alabama",​​
    "percent_educated": 24},

    {​
    "State": "AL",
    "id": 1001,
    "name": "Autauga County",​​
    "percent_educated": 24.6},

    {​
    "State": "AL",
    "id": 1003,
    "name": "Baldwin County",​​
    "percent_educated": 29.5
    }]

dataset2 = [{​
    "id": 1000,
    "qualified_professionals": "64,767,787",​​
    "high_school": "58,820,411",
    "middle_school_or_lower": "27,818,380" },

    {
    "id": 1001,
    "qualified_professionals": "783,076",​​
    "high_school": "1,009,593",
    "middle_school_or_lower": "496,036" },

    {​
    "id": 1003,
    "qualified_professionals": "8,968",​​
    "high_school": "12,519",
    "middle_school_or_lower": "4,528" 
    }]

所需输出:

datasetCombined = [{​
    "State": "AL",
    "id": 1000,
    "name": "Alabama",​​
    "percent_educated": 24,
    "qualified_professionals": "64,767,787",​​
    "high_school": "58,820,411",
    "middle_school_or_lower": "27,818,380"},

    {​
    "State": "AL",
    "id": 1001,
    "name": "Autauga County",​​
    "percent_educated": 24.6,
    "qualified_professionals": "783,076",​​
    "high_school": "1,009,593",
    "middle_school_or_lower": "496,036"},

    {​
    "State": "AL",
    "id": 1003,
    "name": "Baldwin County",​​
    "percent_educated": 29.5,
    "qualified_professionals": "8,968",​​
    "high_school": "12,519",
    "middle_school_or_lower": "4,528"
    }]
亚当·H

在错误地理解了您的问题之后,我花了一些时间并为您构建了此示例,以便您根据Id合并两个数组。

let dataset = [{
    "State": "AL",
    "id": 1000,
    "name": "Alabama",
    "percent_educated": 24
  },
  {
    "State": "AL",
    "id": 1001,
    "name": "Autauga County",
    "percent_educated": 24.6
  },
  {
    "State": "AL",
    "id": 1003,
    "name": "Baldwin County",
    "percent_educated": 29.5
  }
];

let dataset2 = [{
    "id": 1000,
    "qualified_professionals": "64,767,787",
    "high_school": "58,820,411",
    "middle_school_or_lower": "27,818,380"
  },
  {
    "id": 1001,
    "qualified_professionals": "783,076",
    "high_school": "1,009,593",
    "middle_school_or_lower": "496,036"
  },
  {
    "id": 1003,
    "qualified_professionals": "8,968",
    "high_school": "12,519",
    "middle_school_or_lower": "4,528"
  }
];

// create a function to reduce your arrays
let reducer = function(accumulator, currentValue, currentIndex, array) {
   // check if the item already exists in the array
	let found = accumulator.find((item) => item.id == currentValue.id);
  
  if (found) {
    // if it exists then use assign to merge the two values
    Object.assign(found, currentValue)
  } else {
    // doesn't exist, just add it to the array
  	accumulator.push(currentValue);
  }
  
  return accumulator;
}

let datasetCombined = [];

dataset.reduce(reducer, datasetCombined);
dataset2.reduce(reducer, datasetCombined);

console.log(datasetCombined);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不使用 Underscore 或 Lodash 的情况下在 javascript 中组合两个对象数组?

如何在不使用对象引用的情况下在Angular中比较两个对象

如何在不使用循环目标c的情况下比较两个动态数组

如何使用javascript操作两个json数组对象

如何在JavaScript中使用两个对象数组执行内部联接?

如何在不使用jQuery的情况下将对象转换为对象数组?

如何在不连续重复 Javascript 中的两个特定属性的情况下对对象数组进行排序?

如何在不使用数组的情况下以替代方式将两个序列合并为一个序列?

如何在不使用过滤器方法的情况下根据出现的情况比较两个数组?

如何在不使用jquery的情况下在纯JavaScript中使用对象的函数?

如何在不使用数组的情况下比较这两个字符串并删除一个公共字母?

如何在不使用numpy数组中两个For循环的情况下提高时间复杂度,优化结构?

如何从JSON数组JSON对象?

如何在不使用循环的情况下将数组转换为Javascript中的对象?

如何在SQL中列不匹配的情况下联接两个表

如何在可能不会发生的情况下联接两个表?

如何在不使用联接的情况下检查Liquid数组(Shopify)中元素的存在

如何在不使用 JSON 的情况下将 php 数组值传递给 javascript

是否可以在不使用返回类型的情况下连接两个int数组?

在不使用foreach循环的情况下搜索比较两个键的多维数组

如何在不使用 Javascript 或 jQuery 添加属性的情况下将对象的属性复制到另一个对象中?

JavaScript:如何在不使用for..in循环的情况下,从给定ID的对象数组中获取对象?

Json 到 Javascript 对象数组

在Java中,如何合并两个对象的JSON数组?

如何从jSon对象构建数组

如何从 json 对象创建数组?

数组对象数组,如何在不使用属性名称的情况下访问单个元素?

如何在 JavaScript 中组合两个对象数组

如何在javascript中比较两个对象数组?