添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

欢迎访问我的个人博客

有两个json数组demo1和demo2

var demo1 = [{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"}];
var demo2 = [{"id": 2, "name": "牛肉"},{"id": 3,"name": "鱼肉"},{ "id": 4,"name":"鸡肉"}];
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对象

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数组去重方法封装

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":"鸡肉"}]
function	arrayReSet(jsonArray) {
		let json = jsonArray; //两个数组对象合并
		let newJson = []; //盛放去重后数据的新数组
		console.log(json)
		for (let i = 0; i < json.length; i++) { //循环json数组对象的内容
			let flag = true; //建立标记,判断数据是否重复,true为不重复		
			for (let
需求描述:去除JSON数组中paymode字段相同的项,并将paymoney累加。
paylist:[{paymode:'1',payname:"现金",paymoney:"20"},
{paymode:'2',payname:"支付宝",paymoney:"50"},{paymode:'1',payname:"现金",paymoney:"40"}]
function UniquePay(paylist){
  var payArr = [paylist[0]];
  for(var i = 1; i < p
/*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */
Array.prototype.unique=function(){
    var newArr=[],obj={};
    for(var i=0,len=this.length;i<len;i++){
        if(!ob...
				
一次无意接受到json数组去重的帮助需求,自信满满的直接上手,不到两分钟留下代码就转身而去,不等屁股挨上座椅就被告知,无法实现去重效果。。。。立马转身再次回头梳理代码,经过各种梳理与尝试,最终完成了预期效果的实现,也意外的发现中间的一些容易忽略的坑与迷失点,现整理出来给自己梳理知识点的同时也给码友们提供参考。 json数组去重的方法其实很多,最原生的js写法就是for循环遍历,然后剔除重复的对象之后新建一个数组,最后这个新建的数组就是自己需要的,如下实例代码: function unique(arr)
JavaScript两个json数组删重(使用map+filter) JavaScript一个json数组去重(使用filter) JavaScript一个json数组去重(使用reduce) JavaScript找出两个Json数组相同的属性和值(使用reduce) JavaScript对象变json数组
在没有数据的时候页面的高度是690px; 调用数据请求后,在ajax的success里面打印高度还是690px (我认为是数据加载完了,但是页面没有渲染好,所以高度获取的还是之前的高度); 我就在vue这几个(created,mounted,updated)生命周期都打印了下,都还是690px; 需要用到$......
```javascript function mergeAndDistinct(jsonArray1, jsonArray2) { let mergedArray = jsonArray1.concat(jsonArray2); let distinctArray = []; for (let i = 0; i < mergedArray.length; i++) { let flag = true; for (let j = 0; j < distinctArray.length; j++) { if (JSON.stringify(mergedArray[i]) === JSON.stringify(distinctArray[j])) { flag = false; break; if (flag) { distinctArray.push(mergedArray[i]); return distinctArray; 这段代码接受两个对象数组作为参数,将它们合并为一个数组,并去除重复的对象。它使用嵌套的循环来比较每个对象是否已存在于新数组中,如果不存在,则将其添加到新数组中。最后,返回新数组作为结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JS对象数组合并去重?](https://blog.csdn.net/weixin_35696012/article/details/114317473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Javascript 【基础】对象数组去重](https://blog.csdn.net/qq_31254489/article/details/109540976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]