1. 程式人生 > 程式設計 >js操作兩個json數組合並、去重,以及刪除某一項元素

js操作兩個json數組合並、去重,以及刪除某一項元素

兩個json數組合並去重,以及刪除某一項元素

let ha = [
 {id:'H',name:'3'},{id:'A',name:'6'},{id:'B',name:'14'},{id:'C',name:'60'}
 ];

let hb= [ 
 {id:'H',name:'2'},name:'16'},{id:'N',name:'19'}
 ];

// 合併兩個json陣列,並去重;

ha= Object.assign([],ha,hb);
console.log('ha',ha);

// [ 
 {id:'H',name:'19'}
 ];


// 去除json陣列中的某一項

ha.splice(3,1);
console.log('ha',name:'19'}
 ];

注:

一、Object.assign()方法,淺拷貝、物件屬性的合併(陣列是物件)

二、splice()方法

在W3C中我們可以查到有關於splice()的描述:

詳情可以 檢視這篇文章:https://www.jb51.net/article/43046.htm

arrayObject.splice(index,howmany,item1,.....,itemX) 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。

引數1:index 為插入新增或(和)刪除的起始位置;

引數2:howmany 指定從陣列中新增/刪除的元素個數;

引數3:item1,itemX 可選,選擇新增操作時填入,表示需要新增的元素。

參考:

JS中徹底刪除json物件組成的陣列中的元素

js刪除json中指定的元素

JS刪除數組裡的某個元素方法

下面是其他網友的補充

將兩個json數組合並

var str1=[{name:"11",age:11}];
var str2=[{name:"22",age:22}];
 
var str3 = [];
 
for (var i = 0; i < str1.length; i++) {
  str3.push(str1[i]);
}
 
for (var i = 0; i < str2.length; i++) {
  str3.push(str2[i]);
}
 
--------------
 
var str3 = str1.concat(str2);

本質上是陣列,用合併陣列的方法來進行合併。

JS實現JSON數組合並和去重

有兩個json陣列demo1和demo2

var demo1 = [{"id": 0,"name": "牛肉"},{"id": 1,"name": "羊肉"}];
var demo2 = [{"id": 2,{"id": 3,"name": "魚肉"},{ "id": 4,"name":"雞肉"}];

數組合並

var totalDemo = demo1.concat(demo2);
console.log(totalDemo); //[{"id": 0,"name": "羊肉"},{"id": 2,"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":"雞肉"}];

map方法:按照原始陣列元素順序依次處理元素。可以在map方法裡面輸入console.log(item)列印看下,它會把陣列中的物件依次打印出來。