处理此问题的最佳方法是什么? 假设我正在处理一个注册表数据库,并且我想知道是否已经存在相同用户名的用户?
像这样:
for (var i = 0; i < database.user.length; ++i) {
if( database.user[i].username === username ) {
return true;
}
}
return false;
还有更好的吗?
PS1:database.user是一个对象数组
PS2:我已经知道 Array->indexOf func 但没有帮助。
最佳答案
即使索引 0 处的项目与您的查询匹配,您的代码也会遍历整个数组。您可以使用 Array.prototype.some ,但与 Array.prototype.findIndex 相比,即使这样,性能也会有所下降。所以我的建议是使用 findIndex。
database.user.findIndex(e => e.username === username) === -1 && login(username);
关于javascript - 在 Javascript 中如何检查数组是否包含具有相同字段的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38563187/