[英]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.