javascript - 在 Javascript 中如何检查数组是否包含具有相同字段的对象?

标签 javascript arrays javascript-objects

处理此问题的最佳方法是什么? 假设我正在处理一个注册表数据库,并且我想知道是否已经存在相同用户名的用户?

像这样:

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/

相关文章:

javascript - 代码点火器 : how to convert Database results into JSON

javascript - 如何相对于 img 大小调整图像叠加大小

javascript - Array() 方法的意外输出

javascript - 旋转盖流效果

javascript - session 结束 5 秒后 jquery fadeout div

javascript - 无法获取数组的长度

arrays - Perl-Postgres 列数组和引号

javascript - 在对象数组中转换对象数组

javascript - 根据单独的对象键、值过滤对象数组

javascript - 创建 Javascript 数组对象