我注意到一种奇怪的行为,至少是我不明白的一种,同时在每个循环的下划线内返回值。我的代码如下,它基本上测试一个元素是否已经存在于基于其 id 的数组中,如下所示:
var elements = [{id: "1", name : "foo"},{id : "3", name: "bar"}];
element_exists = function(key, val){
_.each(elements,function(element){
console.log(element[key], val);
if(element[key] == val){
console.log("element exists");
return true;
}
});
return false;
};
console.log("true : ", element_exists("id", "1"));
console.log("false : ", element_exists("id", "2"));
我在控制台中得到以下日志:
1 1
element exists
3 1
true : false
1 2
3 2
false : false
我的问题是为什么函数不会为第一个元素返回 true ?