前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS实现JSON数组合并和去重

JS实现JSON数组合并和去重

作者头像
别盯着我的名字看
发布2022-06-09 13:17:14
2.4K0
发布2022-06-09 13:17:14
举报
文章被收录于专栏:前端专栏前端专栏

有两个json数组demo1和demo2

代码语言:javascript
复制
var demo1 = [{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"}];

var demo2 = [{"id": 2, "name": "牛肉"},{"id": 3,"name": "鱼肉"},{ "id": 4,"name":"鸡肉"}];

数组合并

代码语言:javascript
复制
var totalDemo = demo1.concat(demo2);
console.log(totalDemo); //[{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"},{"id": 2, "name": "牛肉"},{"id": 3,"name": "鱼肉"},{ "id": 4,"name":"鸡肉"}]

数组合并用的是concat方法,它可以用于字符串之间的连接和数组之间的连接。

数组去重

上面已经得到合并的数组 totalDemo ,去掉name属性是一样的json对象

代码语言:javascript
复制
var temp = {};   //用于name判断重复
var result = [];  //最后的新数组

totalDemo.map(function (item, index) {
    if(!temp[item.name]){
        result.push(item);
        temp[item.name] = true;
    }
});

console.log(result);//[{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"},{"id": 3,"name": "鱼肉"},{ "id": 4,"name":"鸡肉"}];

JSON数组去重利用对象的属性名不可重的特性来做判断,然后得到新的数组,就是去重后的数组。

JSON数组去重方法封装

代码语言:javascript
复制
const arr = [{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"},{"id": 2, "name": "牛肉"},{"id": 3,"name": "鱼肉"},{ "id": 4,"name":"鸡肉"}]

/**
 * JSON数组去重
 * @params {Array} arr 传入的JSON数组
 * @param {String} attrName 根据哪个属性名去重
 * @return {Array} 返回新的去重后的数组
 * */
function delRepeatJson(arr = [], attrName = '') {
    var temp = {}; //用于name判断重复
    var result = []; //最后的新数组

    arr.forEach(function (item, index) {
        if (!temp[item[attrName]]) {
            result.push(item);
            temp[item[attrName]] = true;
        }
    });
    return result;
}

console.log(delRepeatJson(arr, 'name')); // [{"id":0,"name":"牛肉"},{"id":1,"name":"羊肉"},{"id":3,"name":"鱼肉"},{"id":4,"name":"鸡肉"}]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-4-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组合并
  • 数组去重
  • JSON数组去重方法封装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档