js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)

这篇具有很好参考价值的文章主要介绍了js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、根据数组对象中某一key值,合并相同key值的字段,到同一个数组对象中,组成新的数组

1.原数组:
var array = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 1, age: 25 },
  { id: 3, name: 'Charlie', age: 30 }
];
2.合并后数组:
var array = [
  { id: 1, name: 'Alice', age: 25  },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie', age: 30 }
];
3.实现方法:
// 原始数组
var array = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 1, age: 25 },
  { id: 3, name: 'Charlie', age: 30 }
];

// 使用 reduce 方法合并具有相同属性的对象
var mergedArray = array.reduce(function(result, obj) {
  var target = result.find(function(item) {
    return item.id === obj.id;
  });

  if (target) {
    Object.assign(target, obj);
  } else {
    result.push(obj);
  }

  return result;
}, []);

console.log(mergedArray);
4.测试:

js 对象数组合并,javascript,开发语言,ecmascript

二、根据数组对象中某一key值,合并相同key值的对象,到同一个对象中,组成新的数组

1.原数组:
let list = [
      {
        name: "张三",
        gender: "张",
        age: "20"
      },
      {
        name: "李四",
        gender: "李",
        age: "25"
      },
      {
        name: "王五",
        gender: "王",
        age: "30"
      },
      {
        name: "张飞",
        gender: "张",
        age: "20"
      },
      {
        name: "李红",
        gender: "李",
        age: "22"
      }
    ]
2.合并后数组:
let list = [
	{
	  gender: "张",
	  {
        name: "张三",
        gender: "张",
        age: "20"
      },
      {
        name: "张飞",
        gender: "张",
        age: "20"
      }
	},
	{
	 gender: "李",
	 {
        name: "李四",
        gender: "李",
        age: "25"
      },
       {
        name: "李红",
        gender: "李",
        age: "22"
      }
    },
    {
    	gender: "王",
    	{
        name: "王五",
        gender: "王",
        age: "30"
      },
    }
  ]
3.实现方法一:
let tempArr = [];
let Data = [];
for (let i = 0; i < list.length; i++) {
   if (tempArr.indexOf(list[i].gender) === -1) {
     Data.push({
       gender: list[i].gender,
       dataInfo: [list[i]]
     });
     tempArr.push(list[i].gender);
   } else {
     for (let j = 0; j < Data.length; j++) {
       if (Data[j].gender== list[i].gender) {
         Data[j].dataInfo.push(list[i]);
         break;
       }
     }
   }
 }
 console.log(Data);
测试:

js 对象数组合并,javascript,开发语言,ecmascript

4.实现方法二:
let dataInfo = {};
list.forEach((item, index) => {
	let { gender } = item;
	if (!dataInfo[gender]) {
		dataInfo[gender] = {
			gender,			
			child: []
		}
	}
	dataInfo[gender].child.push(item);
});
let newList = Object.values(dataInfo); // list 转换成功的数据
console.log(newList)
测试:

js 对象数组合并,javascript,开发语言,ecmascript文章来源地址https://www.toymoban.com/news/detail-713986.html

到了这里,关于js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • java List中相同的数据合并到一起

    java List中相同的数据合并到一起

    运行结果 如果此篇文章有帮助到您, 希望打大佬们能 关注 、 点赞 、 收藏 、 评论 支持一波,非常感谢大家! 如果有不对的地方请指正!!! 参考1

    2024年02月12日
    浏览(10)
  • Js:获取数组对象重复属性值和数组对象去重

    对象数组去重分为两类:根据某一属性去重,和去重完全相同对象(属性属性值都相同) 一.数组嵌套对象,根据对象某一属性去重 二、数组嵌套对象,去重完全相同对象(属性属性值都相同) 整理如下: 首先、循环数组,拿到对象的所有属性组成的数组; 其次、循环属性

    2024年01月21日
    浏览(12)
  • js中遍历对象数组并获取对象相应的属性值

    JavaScript中遍历对象数组的方法有很多种。以下是常见的四种常见的方法: for ​循环, for...of ​循环, forEach ​方法和 map ​方法,在遍历的同时,通过访问对象的属性来获取相应的值。 ​ for ​循环: ​ for...of ​循环: ​ forEach ​方法: ​ map ​方法(通常用于创建一个

    2023年04月25日
    浏览(9)
  • JS判断对象、数组是否包含某个属性、某个值

    可以使用以下几种方法来判断对象是否包含某个属性: 1. in 操作符: 使用 in 操作符可以检查对象是否包含指定的属性。它会检查对象及其原型链上的所有属性。 2. hasOwnProperty() 方法: hasOwnProperty() 是对象的内置方法,用于检查对象自身是否具有指定的属性(不包括原型链上

    2024年02月09日
    浏览(42)
  • js在数组对象中添加和删除键值对(对象属性)的方法

    添加 1.Object.assign():用法-Object.assign(源对象, {要添加的键值对}) 2.拓展运算符(...):用于取出参数对象所有可遍历属性然后拷贝到当前对象 3.object[key] = value:直接给新的key赋值 删除 1.将属性设置为 undefined:属性本身仍将存在于对象中,它还会改变原始对象。 2.使用 delete 操

    2024年02月14日
    浏览(13)
  • js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复

    js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复

    项目中往往会遇到对数组处理是否存在某个形同的值。或者对象中是否存在形同元素… 下列方法常用,但不限于。 一、普通数组数据 1.1对数组进行排序,对比上一个元素和下一个元素是否相等,若相等,则说明数组有重复值。 1.2:先将数组转换成字符串,再遍历数组,在字

    2024年02月09日
    浏览(16)
  • js修改对象数组中其中某一项属性值(转换格式)

    我们对接口渲染数据的时候,经常会遇到后端返给我们数组中某个属性的格式跟我们想要的不一样,比如,我们渲染需要 小桥,中桥,大桥,返回的数组 分别用 1,2,3来表示小 中 大桥的 第一种方法呢就是 对数组进行遍历 第二种方法看如下代码: 

    2024年02月12日
    浏览(6)
  • 华为OD机试 - 相同数字组成图形的周长(Java & JS & Python)

    华为OD机试 - 相同数字组成图形的周长(Java & JS & Python)

    题目描述 有一个64×64的矩阵,每个元素的默认值为0,现在向里面填充数字,相同的数字组成一个实心图形,如下图所示是矩阵的局部(空白表示填充0): 数字1组成了蓝色边框的实心图形,数字2组成了红色边框的实心图形。 单元格的边长规定为1个单位。 请根据输入,计算

    2023年04月21日
    浏览(20)
  • JavaScript中删除两个数组对象中id相同的对象以及根据id删除数组中对象。

    JavaScript中删除两个数组对象中id相同的对象以及根据id删除数组中对象。

    1. filter方法 定义和用法 filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。 注意 : filter() 不会对空数组进行检测。 注意 : filter() 不会改变原始数组。 语法 参数说明 2. some方法 定义和用法 some() 方法用于检测数组中的元素是否满足

    2024年02月03日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包