簡體   English   中英

如何在沒有其他條件的情況下使用三元條件運算符?

[英]How Can I Use Ternary Conditional Operator Without Else?

我有一個這樣的代碼塊

const numbers = [1, 2, 3, 4, 5, 6];

const newNumbers = numbers.reduce((acc, num) => {
  acc.push(num > 3 ? num : null);
  return acc;
}, []);
console.log('new Numbers', newNumbers);
//returns new Numbers,[null, null, null, 4, 5, 6]

但我不希望將 null 值推送到數組中。 我想執行這樣的操作,但沒有if

const newNumbers = numbers.reduce((acc, num) => {
  if (num > 3) {
    acc.push(num);
  }  
  return acc;
}, []);
console.log(newNumbers);
//returns new Numbers,[4, 5, 6]

如何在沒有其他條件的情況下使用三元條件運算符?

不,條件運算符總是必須“返回”一個值。 想象一下,可以省略替代方案(例如arr.push(num > 3? num) ),將什么值推送到數組?

在這種特定情況下,有一個更好的工具來完成這項工作: Array#filter

const newNumbers = numbers.filter(num => num > 3)

使用&&代替? ,

const numbers = [1, 2, 3, 4, 5, 6];

const newNumbers = numbers.reduce((acc, num) => {
  num > 3 && acc.push(num)
  return acc;
}, []);
console.log(newNumbers);

//返回新的數字,[4, 5, 6]

你總是可以這樣做:

num > 3 ? acc.push(num) : {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM