是否有可能进一步简化以下javascript声明.要求是如果任何输入是否定的,它应该在块内执行语句.我想知道我是否可以< 0多次避免使用一次
if (Number(cash.value) < 0 || Number(cheque.value) < 0 || Number(charge.value) < 0 || Number(card.value) < 0) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
我简化了这个逻辑
if ((Number(Cash.value) || Number(Cheque.value) || Number(Charge.value) || Number(Card.value)) < 0)
Run Code Online (Sandbox Code Playgroud)
但它不起作用,不符合要求.上述逻辑有效,但存在重复的<0逻辑
你可以尝试这样做
var numbers = [Cash.value, Cheque.value, Charge.value, Card.value];
if(numbers.some(value => Number(value) < 0)){
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
例如,在ES6中工作
var numbers = [11, 12, -1,-7];
if(numbers.some(value => value < 0)){
console.log('Found !!!');
}Run Code Online (Sandbox Code Playgroud)
对于IE 9,您可以编写一个函数并使用
function anyNegative(numbers){
for(var i = 0; i < numbers.length; i++){
if(numbers[i] < 0){
return true;
}
}
return false;
}
var numbers = [11, 12, -1,-7];
if(anyNegative(numbers)){
console.log('Found !!!');
}Run Code Online (Sandbox Code Playgroud)