Ich mag zu finden, wenn es eine Diskrepanz von der Benutzereingabe gegen die vorhandenen Daten ist dann etwas tun:Javascript - wie man in der Schleife nach Mismatch sucht?
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);
aber das Ergebnis bekomme ich immer true
obwohl es eine Übereinstimmung gibt.
irgendwelche Ideen?
Es könnte sein, weil Sie alle Elemente in der 'user' Array iterieren durch. Also, selbst wenn einer von ihnen nicht übereinstimmt, wird 'reset' auf' true' gesetzt. –
Warum versuchen Sie nicht, diejenigen zu filtern, die nicht übereinstimmen, und prüfen Sie, ob es welche gibt. Wenn dies der Fall ist, weisen Sie True dem Zurücksetzen zu? – n0m4d
@ n0m4d Wie benutze ich den Filter? – laukok