在JavaScript中使用三元运算符代替if / else

时间:2019-04-04 07:55:24

标签: javascript

假设给定以下代码,您有一个带有随机数的简单数组,我将如何减少使用三元运算符呈现以下内容的代码行。

  

[1、2、1、4、6]

let arr = [1, 2, 3, 4, 6, 8, 9, 12, 13, 15];

let myArray = arr.map((val, i, arr) => {
  if (val % 2 === 0) {
    return val
  } else {
    return val % 2
  }
});

console.log(myArray)

3 个答案:

答案 0 :(得分:3)

逻辑或可以为您解决问题。

let arr = [1,2,3,4,6,8,9,12,13,15]

let myArray = arr.map((val) => val % 2 || val);

console.log(myArray)

答案 1 :(得分:2)

您可以使用bitwise AND &或(带有logical OR ||)的值,而不是conditional (ternary) operator ?:

取值为1的按位与,将返回一个或零,具体取决于另一个操作数。

var array = [1, 2, 3, 4, 6, 8, 9, 12, 13, 15],
    result = array.map(v => v & 1 || v);

console.log(result);

答案 2 :(得分:1)

只需将三元条件写为单个衬里即可

const arr = [1,2,3,4,6,8,9,12,13,15];

const myArray = arr.map((val) => val % 2 === 0 ? val: val % 2);

console.log(myArray);