如何检查数组中是否存在值
How to check if value existed in array or not?
我不想将重复的值推入selectedOwners
,所以在下面的代码中,如果所有者已经存在于我不想推送的数组中selectedOwners
用户正在选择所有者,我该如何检查以避免数组中的重复值?
控制.js
var selectedOwners = [];
$scope.addProcessOwner = function(dataItem){
var selectedOwner = {
fullName: dataItem.fullName,
workerKey: dataItem.workerKey
}
if(selectedOwners.indexOf(selectedOwner) !== -1) {
selectedOwners.push(selectedOwner);
}
console.log('WORKER DATA',selectedOwners);
}
您可以使用
Array.prototype.some
方法
some() 方法测试数组中的某个元素是否通过了所提供函数实现的测试。
var isExists = function(e) {
if (e.fullName == selectedOwner.fullName
&& e.workerKey == selectedOwner.workerKey) {
return true;
}
}
if (!selectedOwners.some(isExists)) {
selectedOwners.push(selectedOwner);
}
对于字符串和数字等简单类型,Array.indexOf
的使用是显而易见的。
但是,当您查找对象时,您必须传递完全相同的对象。具有所有相同属性和值的不同对象仍然不起作用。将数组视为包含指向对象的指针,并且必须查找相同的指针。
相反,您需要编写自己的方法来比较所有者的相等性,并遍历执行此检查的数组。
尝试将"if"逻辑包装在for循环中。
例
以下代码遍历数组并检查已存在的值
for(var i = 0; i < selectedOwners.length; i++){
if(selectedOwners.indexOf(selectedOwner) !== -1) {
selectedOwners.push(selectedOwner);
}
}
相关文章:
- 用于检查数组中是否存在元素的javascript自定义方法
- 是否存在React Native“;WEB代码安全防护”;
- 验证会话中是否存在对象's数组
- 如何查找值是否存在于二叉树中
- 检查是否存在使用chrome扩展的javascript库
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 测试mongo脚本中是否存在参数
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 检查数组中是否存在字符串值,并返回找到的数组值js
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 检查是否存在任意控制器/操作
- Javascript滑块不滑动,如何判断是否存在JS冲突
- 根据手机上是否存在文件,在jQuery mobile中动态填充列表视图
- javascript测试是否存在两个标志中的任何一个
- 如何使用javascript检查移动sd卡中是否存在文件
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 需要帮助使用JQuery.inArray()检查值是否存在
- 确定元素是否存在
- 使用javascript检查服务器上是否存在html文件
- 是否存在类似ExtJS 4的框架;正常的“;网站