【发布时间】:2016-09-18 05:17:09
【问题描述】:
这里我有一个函数。它接受一个对象数组和一个特定值。使用 forEach 方法迭代数组以确保提供的值已经存在于数组中的任何对象中。如果找到它返回 FALSE ,或者它应该返回 true。但是虽然它返回 FALSE,但其余代码也得到执行的结果,始终返回 TRUE。我如何只能返回 FALSE/TRUE
if(find_value_in_obj(all_selected,current.value)){
all_selected.push({select_elem:current,value:current.value});
console.log(all_selected);
}else{
alert("you already selected the value");
}
function find_value_in_obj(arr_obj,value){
arr_obj.forEach(function(elem,index,array){
if(elem.value == value){
console.log('found it ');
return false;
}
});
console.log("i am her"); // though value already exists and should returned ,it gets executed results in returning TRUE instead
return true;
}
【问题讨论】:
-
return false;只从你传递给forEach的回调中返回,它对find_value_in_obj没有任何影响。你应该考虑使用Array#some。
标签: javascript arrays boolean