js操作兩個json數(shù)組合并、去重,以及刪除某一項元素
兩個json數(shù)組合并去重,以及刪除某一項元素
let ha = [ {id:'H',name:'3'}, {id:'A',name:'6'}, {id:'B',name:'14'}, {id:'C',name:'60'} ]; let hb= [ {id:'H',name:'2'}, {id:'A',name:'6'}, {id:'B',name:'16'}, {id:'N',name:'2'}, {id:'C',name:'19'} ]; // 合并兩個json數(shù)組,并去重; ha= Object.assign([], ha, hb); console.log('ha',ha); // [ {id:'H',name:'2'}, {id:'A',name:'6'}, {id:'B',name:'16'}, {id:'N',name:'2'}, {id:'C',name:'19'} ]; // 去除json數(shù)組中的某一項 ha.splice(3, 1); console.log('ha',ha); // [ {id:'H',name:'2'}, {id:'A',name:'6'}, {id:'B',name:'16'}, {id:'C',name:'19'} ];
注:
一、Object.assign()方法,淺拷貝、對象屬性的合并(數(shù)組是對象)
二、splice()方法
在W3C中我們可以查到有關(guān)于splice()的描述:
詳情可以 查看這篇文章:http://www.dbjr.com.cn/article/43046.htm
arrayObject.splice(index, howmany, item1, ....., itemX) 方法向/從數(shù)組中添加/刪除項目,然后返回被刪除的項目。
參數(shù)1:index 為插入添加或(和)刪除的起始位置;
參數(shù)2:howmany 指定從數(shù)組中添加/刪除的元素個數(shù);
參數(shù)3:item1, ....., itemX 可選,選擇添加操作時填入,表示需要添加的元素。
參考:
js刪除json中指定的元素
下面是其他網(wǎng)友的補充
將兩個json數(shù)組合并
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);
本質(zhì)上是數(shù)組,用合并數(shù)組的方法來進行合并。
JS實現(xiàn)JSON數(shù)組合并和去重
有兩個json數(shù)組demo1和demo2
var demo1 = [{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"}];
var demo2 = [{"id": 2, "name": "牛肉"},{"id": 3,"name": "魚肉"},{ "id": 4,"name":"雞肉"}];
數(shù)組合并
var totalDemo = demo1.concat(demo2);
console.log(totalDemo); //[{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"},{"id": 2, "name": "牛肉"},{"id": 3,"name": "魚肉"},{ "id": 4,"name":"雞肉"}]
數(shù)組合并用的是concat方法,它可以用于字符串之間的連接和數(shù)組之間的連接。
數(shù)組去重
上面已經(jīng)得到合并的數(shù)組 totalDemo ,去掉name屬性是一樣的json對象
var temp = {}; //用于name判斷重復(fù) var result = []; //最后的新數(shù)組 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":"雞肉"}];
map方法:按照原始數(shù)組元素順序依次處理元素??梢栽趍ap方法里面輸入console.log(item)打印看下,它會把數(shù)組中的對象依次打印出來。
相關(guān)文章
用JSON做數(shù)據(jù)傳輸格式中的一些問題總結(jié)
Json 憑借其自身的優(yōu)勢,在Web數(shù)據(jù)處理方面已經(jīng)占據(jù)了一定的位置,這段時間涉及到用Json做為數(shù)據(jù)傳輸格式的項目有3個,其中有部分頁面就采用了Json 數(shù)據(jù)傳輸格式, 這里我總結(jié)下這段時間采用這種方式的一些問題總結(jié)2011-12-12javascript 循環(huán)讀取JSON數(shù)據(jù)的代碼
服務(wù)端向客戶端返回了一串JSON格式的數(shù)據(jù)。在有些時候,因為某些特殊的原因我們不知道原始的key值,因此我們此時無法象正常一樣通過key值,來獲取value值。這時我們必須循環(huán)讀取JSON對象數(shù)據(jù)。廢話少說,來看例子。2010-07-07深入javascript json QQ網(wǎng)頁登陸
下面是個類似QQ網(wǎng)頁登陸的一個對話框(DIV), js + json 動態(tài)生成.2009-07-07JSON 入門教程基礎(chǔ)篇 json入門學(xué)習(xí)筆記
剛開始接觸json的時候感覺有點奇怪的命名,后來使用才發(fā)現(xiàn)這么簡單而且用好用,擴展性很強,這里就為大家整理一下2020-09-09js解析與序列化json數(shù)據(jù)(一)json.stringify()的基本用法
對象有兩個方法:stringify()和parse()。在最簡單的情況下,這兩個方法分別用于把JavaScript對象序列化為JSON字符串和把JSON字符串解析為原生JavaScript2013-02-02