如何在数组中指定多个条件而不是使用多个“||”

How to specify multiple conditions in an array instead of using multiple " | | "

我有一系列条件

let conditions = [1,3,5,7,9];
let values = [1,2,3,4,5,6,7,8,9,0]

我要

if (values == 1 || values== 3 || values == 5 || values == 7 || values == 9 ){   
  return values * 3  
} else { 
  return value * 2 
}

有人可以帮助避免编写多个 OR 条件并在 1 条语句内完成吗? 谢谢

首先:您可以使用 map 运算符遍历您的值 然后通过 includes

检查

let conditions = [1,3,5,7,9];
let values = [1,2,3,4,5,6,7,8,9,0]

const result = values.map(val => conditions.includes(val) ? val * 3 : val * 2);

console.log(result)

我建议根据您的条件创建一个 Set,这对于大型数据集会更有效。然后您可以使用 Array.map() 创建您的结果:

let conditions = new Set([1,3,5,7,9]);
let values = [1,2,3,4,5,6,7,8,9,0]

function getResult(values, conditions) {
   return values.map(value => conditions.has(value) ? value * 3: value * 2)
}

console.log('getResult:', getResult(values, conditions));

你可以这样做:

const toAvoidArray = [1, 3, 5, 7, 9]
if (toAvoidArray.indexOf(value) !== -1) {
  return values * 3
} else {
  return value * 2
}

或者在你的情况下,你可以这样做:

if (value%2!==0) {
  return values * 3
} else {
  return value * 2
}