鍍金池/ 問(wèn)答/HTML/ 關(guān)于兩個(gè)數(shù)組進(jìn)行比較的問(wèn)題 js

關(guān)于兩個(gè)數(shù)組進(jìn)行比較的問(wèn)題 js

var array_A = [{number:529,NAME:"甲"},{number:550,NAME:"乙"},{number:593,NAME:"丙"},{number:813,NAME:"丁"}]
var array_B = [{ID:"201712015041",number:529},{ID:"201712015045",number:550},{ID:"201712015031",number:593},{ID:"201712015039",number:558}]

最后想要這樣的結(jié)果
var array_C = [{ID:"201712015041",number:529,NAME:"甲"},{ID:"201712015045",number:550,NAME:"乙"},{ID:"201712015031",number:593,NAME:"丙"},{ID:"201712015039",number:558,NAME:"558"}]
回答
編輯回答
枕頭人

圖片描述

2017年11月27日 11:42
編輯回答
神曲

如果兩個(gè)數(shù)組本身就是排序好的,且是一一對(duì)應(yīng)的,則很好處理,否則比較麻煩。

2017年3月11日 13:00
編輯回答
毀憶

這個(gè)很簡(jiǎn)單啊,你可以遍歷數(shù)組給數(shù)組的每一項(xiàng)進(jìn)行賦值,因?yàn)樵跀?shù)組中每一項(xiàng)都是一個(gè)對(duì)象,所以可以直接增加NAME這一項(xiàng),代碼如下


for(var i=0;i<array_A.length;i++){
                array_B[i].NAME = array_A[i].NAME
            }
            console.log(array_B)
2018年2月19日 11:27
編輯回答
懶洋洋
var array_A = [{number:529,NAME:"甲"},{number:550,NAME:"乙"},{number:593,NAME:"丙"},                
{number:813,NAME:"丁"}]
var array_B = [{ID:"201712015041",number:529},{ID:"201712015045",number:550},
{ID:"201712015031",number:593},{ID:"201712015039",number:558}]
var  arr = []
array_A.map(function(e){
    array_B.map(function(i){
         if( e.number == i.number){
             e["ID"] = i.ID
             arr.push(e)
         }
    })

     return arr 

})
console.log(arr)

輸出結(jié)果

clipboard.png

2017年8月15日 20:06
編輯回答
雨蝶
var array_A = [{number:529,NAME:"甲"},{number:550,NAME:"乙"},{number:593,NAME:"丙"},{number:813,NAME:"丁"}]
var array_B = [{ID:"201712015041",number:529},{ID:"201712015045",number:550},{ID:"201712015031",number:593},{ID:"201712015039",number:558}]
var array_C = []
array_A.map(itemA => {
  array_B.map(itemB => {
    if (itemA.number === itemB.number) {
      array_C.push(Object.assign({}, itemB, itemA))
    }
  })
})
console.log(array_C)
2017年8月27日 15:39
編輯回答
卟乖
var array_A = [{number:529,NAME:"甲"},{number:550,NAME:"乙"},{number:593,NAME:"丙"},{number:813,NAME:"丁"}];
var array_B = [{ID:"201712015041",number:529},{ID:"201712015045",number:550},{ID:"201712015031",number:593},{ID:"201712015039",number:558}];
var array_C = array_B.map(item=>{
    let _item = array_A.find(item1=>item1.number===item.number);
    if(_item){
        _item.ID = item.ID;
        return _item;
    }else{
        item.NAME = item.number+'';
        return item;
    }
});
console.log(array_C)
2018年1月5日 19:58
編輯回答
笑忘初
var obj = {}
array_A.forEach(x => obj[x.number] = x)
array_c = array_B.map(x => {
    var val = obj[x.number]
    return (x.NAME = val ? val.NAME : ('' + x.number), x)
})
2017年7月5日 16:44