gpt4 book ai didi

javascript - 合并两个数组对象 : one has key value pair and another is just array

转载 作者:行者123 更新时间:2023-12-03 07:08:04 25 4
gpt4 key购买 nike

我有两个数组对象,一个是 ArrayX,另一个是 ArrayY。ArrayX 有 user_id 和 store_ids[] ArrayY 有 store_id 和 store_name我想根据 ArrayX 的 store_ids 合并两个数组。

```
//First array
ArrayX = [
{
user_id: 'user 4',
store_ids: [ 'store 2','store 4', 'store 1' ],
},
{
user_id: 'user 6',
store_ids: [ 'store 1', 'store 2' ],
}
]


//second array
ArrayY = [
{
store_id: 'store 4',
store_name: 'store D'
},
{
store_id: 'store 2',
store_name: 'store B'
},
{
store_id: 'store 1',
store_name: 'store A'
},
{
store_id: 'store 3',
store_name: 'store C'
}
]
```

下面是我想要的。

```
ArrayZ = [
{
user_id: 'user 4',
store_ids: [ 'store 2','store 4', 'store 1' ],
store_info : [
{
store_id: 'store 2',
store_name: 'store B'
},
{
store_id: 'store 4',
store_name: 'store D'
},
{
store_id: 'store 1',
store_name: 'store A'
}
]
},
{
user_id: 'user 6',
store_ids: [ 'store 1', 'store 2' ],
store_info: [
{
store_id: 'store 1',
store_name: 'store A',
},
{
store_id: 'store 2',
store_name: 'store B',
}
]
}
]
```

我尝试了 map 函数,但没有得到上面提到的预期结果。

let ArrayZ = ArrayX.map((item, i) => Object.assign({}, item, ArrayY[i])) 

[
{
user_id: 'user 4',
store_ids: [ 'store 2', 'store 4','store 1' ],
store_id: 'store 4',
store_name: 'store D',
},
{
user_id: 'user 6',
store_ids: [ 'store 1', 'store 2'],
store_id: 'store 2',
store_name: 'store B',
},
Thi is what i am getting.

任何人都可以对此提出建议。

最佳答案

我会这样做:

const arrayZ = [];

const sort = () =>{

arrayX.forEach(element => {
let store_info = [];
arrayY.forEach(el =>{
if(element.store_ids.includes(el.store_id)){
store_info.push(el);
console.log(store_info)
}
})
element.store_info = store_info;
arrayZ.push(element);
})
}

sort();

console.log(arrayZ);

您甚至可以稍微重构函数以将 2 个数组作为参数....像这样你保持 arrayX 和 arrayY 完好无损,如果你需要的话......

关于javascript - 合并两个数组对象 : one has key value pair and another is just array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64041964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com