javascript - JavaScript 从 Array.forEach 返回或中断
问题描述
我有一个数组,它有 2 个 forEach 循环,如下所示。
array1.forEach(o1 => unique_array2.forEach(o2 => {
if (o1.uName == o2.uName && o1.uid == o2.uid) {
//matches.push(o1);
break;
}
}));
如果找到匹配项,我想自行退出循环。我试图放一个休息,但它说非法的休息声明,因为它在一个循环内。
我可以创建另一个假数组并将所有负值如下所示:
if (o1.uName == o2.uName && o1.uid == o2.uid) {
matches.push(o1);
}
else{
nonMatches.push(o1);
}
然后检查 nonMatches 数组,然后相应地返回。但我试图避免它,因为我的数组可能很大,一旦找到匹配项,我想停止。
如果需要,这是我的片段:
var array1 = [{
id: 0,
name: "adam",
uName: "aSilver",
uId: "123",
table: "table1"
},
{
id: 1,
name: "john",
uName: "jBerlin",
uId: "456",
table: "table1"
}
];
var array2 = [{
id: 0,
name: "adam",
uName: "aSilver, jBerlin",
uId: "123, 456",
createdBy: "auto",
createdOn: "09/10/2018",
desc: "none",
table: "table1"
},
{
id: 1,
name: "john",
uName: "aSilver, jBerlin",
uId: "123, 456",
createdBy: "auto",
createdOn: "09/10/2018",
desc: "none1",
table: "table1"
},
{
id: 0,
name: "steve",
uName: "aSilver, jBerlin, pParis",
uId: "123, 456, 789 ",
createdBy: "auto ",
createdOn: "09 / 10 / 2018 ",
desc: "none2",
table: "table2"
},
{
id: 0,
name: "nash",
uName: "aSilver, jBerlin, pParis",
uId: "123, 456, 789 ",
createdBy: "auto ",
createdOn: " 09 / 10 / 2018 ",
desc: "none3 ",
table: "table2"
},
{
id: 0,
name: "sand",
uName: "aSilver",
uId: "123",
createdBy: "auto",
createdOn: "09/10/2018",
desc: "none4",
table: "table3"
}
];
obj = {};
array2.forEach(o => obj[o.table] = o);
unique_array2 = Object.keys(obj).map(k => obj[k]);
matches = [];
array1.forEach(o1 => unique_array2.forEach(o2 => {
if (o1.uName == o2.uName && o1.uid == o2.uid) {
//matches.push(o1);
break;
}
}));
console.log(matches);
还有其他解决方法吗?
解决方案
推荐阅读
- firebase - 从 Firestore 数据库中检索字段信息
- java - (AWS + Credentials) TextractClientBuilder 类型的 withCredentials(AWSStaticCredentialsProvider) 方法未定义
- postgresql - 找不到网络参数文件和兼容区域未配置/无法访问,corda
- python-3.x - 如何在 Pycharm 中使用 Excel 作为一种字典。我想使用索引来打印值
- pinchzoom - 如何在 VC++ 或 C++ 中实现捏放大/缩小?
- sql - knex increment upsert - 如果记录创建失败则增加
- javascript - 如果一些被解构而另一些没有被解构,如何记录函数的参数(JSDoc)
- selenium-webdriver - 如何编写函数并在 Katalon Studio 中调用它?
- python - 即使退出代码也继续运行 python
- python - Python 使用 BeautifulSoup 将 xml 转换为 csv 在 azure 上不起作用