从函数返回TRUE或FALSE
return TRUE or FALSE from a function
这里有一个函数,它接受一个对象数组和一个特定的值。使用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;
}
forEach遍历所有值。您应该使用。some()。
由于使用some
只是一个一行代码,您实际上不需要为它创建一个助手,例如(从MDN):
console.log([2, 5, 8, 1, 4].some(elem => elem > 10)); // false
console.log([12, 5, 8, 1, 4].some(elem => elem > 10)); // true
forEach
不能像常规的for
循环那样在迭代中途中断。使用常规的for
循环代替。或者,如果你正在使用ES6,那么你可以通过使用.find()
来实现同样的事情。
function find_value_in_obj(arr_obj,value){
return !!!arr_obj.find(itm => itm == value);
}
正如felix建议的那样,您也可以使用Array.prototype.some
。
function find_value_in_obj(arr_obj,value){
return !arr_obj.some(itm => itm == value);
}
您也可以尝试使用过滤器,它更合适和干净。
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){
var resultArray = arr_obj.filter(function(elem,index,array){
return elem.value == value;
});
if(resultArray.length > 0){
return false;
}
console.log("i am her"); // though value already exists and should returned ,it gets executed results in returning TRUE instead
return true;
}
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- JavaScript-切换“;全部检查”;复选框true/false
- (false==false==true)怎么可能是真的
- Javascript If else 只返回 TRUE 或只返回 FALSE
- 过滤器返回true或false
- 什么是'true'和'false'和'null'
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作
- 在JavaScript中为true==1和false==0
- true==false以某种方式计算为true
- 获取Javascript中单选按钮的true或false
- 使用!而in运算符在应该为true时返回false,为什么
- 如何使以下函数返回true或false
- 为什么 javascript 返回对象位置 true 或 false
- 如何使函数将属性值从 FALSE 设置为 TRUE
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- 在 JavaScript 中,为什么 []==false 为 true
- 为什么true/true是1,true/false是无穷大,false/true是0,false/false是NaN
- Javascript 布尔值:false && true 结果为 true
- 覆盖保留字(设置 false = true)
- 为什么这个类不返回false|| true