Javascript - 如何在循环中查找不匹配?

标签 javascript foreach

我想查找用户输入与现有数据是否不匹配,然后执行某些操作:

var reset = false;    
var user = [ 
  { public_name: 'e', code_name: 'f' },
  { public_name: 'c', code_name: 'not match' },
  { public_name: 'a', code_name: 'b' } 
];

var server = [
   {"code_name":"b","public_name":"a"},
   {"code_name":"d","public_name":"c"},
   {"code_name":"f","public_name":"e"}
]

user.forEach(function(field, index) {
   var matchingSpecies = server.find(function(item) {
       if (item.code_name === field.code_name 
           && item.public_name === field.public_name) {
           // matched so do nothing
       } else {
           // not match and stop looping
           reset = true;
       }
    });
});

console.log(reset);

但即使存在匹配,我得到的结果也始终为true

有什么想法吗?

最佳答案

你可以尝试这样的事情:

注意:我制作了原始用户的副本,并将其更新为匹配服务器以显示两种状态。

JSFiddle

function findMatching(array) {
  var _reset = false;
  array.forEach(function(field, index) {
    var matchingSpecies = server.find(function(item) {
      return item.code_name !== field.code_name && item.public_name === field.public_name
    });
    _reset = matchingSpecies && Object.getOwnPropertyNames(matchingSpecies).length>0 || _reset
  });
  return _reset;
}

var user=[{public_name:"e",code_name:"f"},{public_name:"c",code_name:"not matched"},{public_name:"a",code_name:"b"}],
    user1=[{public_name:"e",code_name:"f"},{public_name:"c",code_name:"d"},{public_name:"a",code_name:"b"}],
    server=[{code_name:"b",public_name:"a"},{code_name:"d",public_name:"c"},{code_name:"f",public_name:"e"}];

console.log(findMatching(user));
console.log(findMatching(user1));

关于Javascript - 如何在循环中查找不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38568075/

相关文章:

java - 从 Eclipse 为 PhoneGap 调用 javascript

javascript - jQuery: animate( 参数, [持续时间], [缓动], [回调] )

PHP 使用数组结果完成MySQL查询并将结果添加到现有数组中

sql-server - 通过声明枚举会导致 HttpException SqlException

javascript - Coldfusion 使用 ajax 部分 2 使用下拉选择填充表单

javascript - 如何检查哪个资源导致网页加载缓慢

c# - foreach 是否从 C# BlockingCollection 中删除?

PHP嵌套foreach循环显示表格

javascript - forEach 中的上下文

javascript - 从下拉菜单中选择的选项启用/禁用文本框