Здесь у меня есть функция. Он принимает массив объекта и определенное значение. Массив выполняется итерацией с использованием метода forEach, чтобы гарантировать, что предоставленное значение уже существует в любом из объектов в array.If нашел он возвращает FALSE, или он должен вернуть true.But хотя она возвращает FALSE, остальная часть кода ALSE запускается на выполнение результатов в возвращении TRUE, все time.How я могу вернуть только FALSE/TRUE,return TRUE или FALSE от функции
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'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some). –