在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 兩個(gè)數(shù)組的操作

兩個(gè)數(shù)組的操作

arr1 = [
{active:true, id=1,name: 業(yè)務(wù)類型},
{active:true, id=2,name: 報(bào)表類型},
{active:true, id=3,name: 資產(chǎn)類型},
]

arr2 = [
{active:false, id=1,name: 業(yè)務(wù)類型},
{active:false, id=2,name: 報(bào)表類型},
{active:false, id=3,name: 資產(chǎn)類型},
{active:false, id=4,name: 商業(yè)類型},
{active:false, id=5,name: 報(bào)銷類型}
]

最終要的是arr2 = [
{active:true, id=1,name: 業(yè)務(wù)類型},
{active:true, id=2,name: 報(bào)表類型},
{active:true, id=3,name: 資產(chǎn)類型},
{active:false, id=4,name: 商業(yè)類型},
{active:false, id=4,name: 報(bào)銷類型}
]
目的只要把a(bǔ)rr2的有包含arr1想的active改成true,沒有包含arr1項(xiàng)的active就不修改,沒有思路 試了用幾種方法,都沒成功

回答
編輯回答
有你在
沒有思路 試了用幾種方法,都沒成功

請把你用過的幾種方法貼出來,讓大家知道你曾經(jīng)努力過

以下是我的思路

const arr1 = [
    {active:true, id:1,name: "業(yè)務(wù)類型"},
    {active:true, id:2,name: "報(bào)表類型"},
    {active:true, id:3,name: "資產(chǎn)類型"},
];
const arr2 = [
    {active:false, id:1,name: "業(yè)務(wù)類型"},
    {active:false, id:2,name: "報(bào)表類型"},
    {active:false, id:3,name: "資產(chǎn)類型"},
    {active:false, id:4,name: "商業(yè)類型"},
    {active:false, id:5,name: "報(bào)銷類型"}
];
const set = new Set();
arr1.forEach(item=>set.add(item.id));
arr2.forEach(item=>{
    if(set.has(item.id)){
        item.active = true;
    }
});

console.table(arr2);

以下是運(yùn)行結(jié)果

clipboard.png

2018年4月28日 20:01
編輯回答
帥到炸
// 創(chuàng)建映射
const map = arr1.reduce((p, c) => [p[c.name] = p[c.name] || true, p][1], {})
// 獲取映射結(jié)果
const result = arr2.map(item => [map[item.name] && (item.active = true), item][1]])

話說這兩行代碼我已經(jīng)用來回答三四個(gè)類似的問題了,都是這兩天的,中午還回答了一個(gè),你這個(gè)問題好像之前就有個(gè)幾乎一樣的啊...

2017年1月4日 14:04
編輯回答
笑浮塵
arr1 = [
{active:true, id:1,name:'業(yè)務(wù)類型'},
{active:true, id:2,name:'報(bào)表類型'},
{active:true, id:3,name:'資產(chǎn)類型'}
]

arr2 = [
{active:false, id:1,name: '業(yè)務(wù)類型'},
{active:false, id:2,name: '報(bào)表類型'},
{active:false, id:3,name: '資產(chǎn)類型'},
{active:false, id:4,name: '商業(yè)類型'},
{active:false, id:5,name: '報(bào)銷類型'}
]

let obj = {};
arr1.forEach(item=>{
    obj[item.id] = item;
});

arr2.forEach(item=>{
    if(obj[item.id]){
        item.active = true;
    }
})
2017年7月4日 15:02
編輯回答
乖乖瀦
const arr1 = [
    {active:true, id:1,name: "業(yè)務(wù)類型"},
    {active:true, id:2,name: "報(bào)表類型"},
    {active:true, id:3,name: "資產(chǎn)類型"},
];
const arr2 = [
    {active:false, id:1,name: "業(yè)務(wù)類型"},
    {active:false, id:2,name: "報(bào)表類型"},
    {active:false, id:3,name: "資產(chǎn)類型"},
    {active:false, id:4,name: "商業(yè)類型"},
    {active:false, id:5,name: "報(bào)銷類型"}
];
arr2.map(v2 => {
    const member = arr1.find(v1 => v1.id === v2.id);
    return member && member.active ? {...v2, active: member.active} : v2
})
2018年6月23日 09:15