gpt4 book ai didi

javascript - 检查两个数组之间的元素是否相同,然后从中赋值

转载 作者:行者123 更新时间:2023-11-28 14:09:55 25 4
gpt4 key购买 nike

在我的 Angular 8 应用程序中,我有 2 个数组:

array1 = [{
"SubType": "2|3|4|5|6",
},
{
"SubType": "2",
},
{
"SubType": "3|4",
},
{
"SubType": "6",
},
{
"SubType": "3|6",
},
]

&

array2 = [{
"id": 2,
"type": "1",
},
{
"id": 3,
"type": "5",
},
{
"id": 4,
"type": "4",
},
{
"id": 5,
"type": "3",
},
{
"id": 6,
"type": "2",
}
]

我正在尝试检查 array1 中的每个 "SubType" 并查看该元素(id)是否存在于 array2 中以及是否存在将其“type”分配给一个变量。 “子类型” 是 |将 I 分开并使用 array1..split('|') 转换为数组。当分配给变量时,需要用逗号分隔。我尝试使用数组过滤器,但无法找到一种方法来循环第二个数组。有人可以帮忙吗?

array1.forEach(reg => {
if (reg.SubType) {
let subTypeTemp = reg.SubType.split('|');
let tempVariable = subTypeTemp.some(ele => {
let stringToassign = '';
for (let i = 0; i < array2.length; i++) {
if (ele == array2[i].id) {
stringToassign += array2[i].type + ",";
}
}
})
}
})

最佳答案

const array1 = [
{
SubType: "2|3|4|5|6"
},
{ SubType: "2" },
{ SubType: "3|4" },
{ SubType: "6" },
{ SubType: "3|6" }
];

const array2 = [
{
id: 2,
type: "1"
},
{ id: 3, type: "5" },
{ id: 4, type: "4" },
{ id: 5, type: "3" },
{ id: 6, type: "2" }
];

const array2Obj = array2.reduce(
(acc, curr) => ({
...acc,
[curr.id]: curr.type
}),
{}
);

const types = [];
array1.forEach(item => {
const sub_types = item.SubType.split("|");
sub_types.forEach(st => {
if (st in array2Obj) {
types.push(array2Obj[st]);
}
});
});

const types_str = [...new Set(types)].join(',');

console.log("types", types_str);

关于javascript - 检查两个数组之间的元素是否相同,然后从中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964960/

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