javascript - 检查一个元素是否在 2 个数组之间是通用的,然后从中分配值
问题描述
在我的 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",
}
]
我正在尝试检查每个元素并查看"SubType"
该array1
元素(id)是否存在array2
,如果存在则将其分配"type"
给一个变量。"SubType"
是| 分隔 which 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 + ",";
}
}
})
}
})
解决方案
您可以采取 aMap
并防止array2
一遍又一遍地循环以获得type
want id
。
var 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" }],
types = new Map(array2.map(({ id, type }) => [id.toString(), type])),
result = array1.map(({ SubType }) => SubType
.split('|')
.map(Map.prototype.get, types)
.join()
);
console.log(result);
推荐阅读
- javascript - 如何在js中从字符串转换为字节数组
- node.js - 如何使用 node js 从数字海洋中删除图像?
- javascript - 如何使用nodejs检查数组列表中存在的具有给定扩展名的文件
- odoo - 当库存数量小于零时,如何在网站上的产品上自动显示“缺货”?
- html - Kanna 在解析 HTML 时移除节点
- ios - 如何在 addSubview 中添加类 UIView
- list - 如何引用在类中创建的 List<> 对象?
- php - 路由 [LaravelInstaller::welcome] 未定义
- reactjs - 在 ReactJs 中使用 jsPDF 下载 PDF 后,字体系列不会在生产中呈现
- vb.net - cefsharp 在每个请求上更改 UserAgent