我有兩個布爾條件來過濾陣列。陣列中總是有 3 個專案,第一個條件總是洗掉第二個專案,第二個條件是第三個。我成功地使用過濾它.filter。但似乎我的方法有點臟,有沒有更好、更清晰的過濾方式?
const firstCondition = true;
const secondCondition = true;
const arrayToFilter: Array<string> = ['firstItem', 'secondItem', 'thirdItem'].filter(
(item, idx) =>
firstCondition && secondCondition
? item
: !firstCondition && secondCondition
? idx !== 1
: !firstCondition && !secondCondition
? idx === 0
: firstCondition && !secondCondition && idx !== 2
);
console.log(arrayToFilter);
編輯:澄清 如果條件為假,他們會洗掉專案
uj5u.com熱心網友回復:
這個怎么樣?
const arrayToFilter: Array<string> = ['firstItem', 'secondItem', 'thirdItem'].filter(
(item, idx) => {
if (!firstCondition && idx === 1) return false
if (!secondCondition && idx === 2) return false
else return true
}
);
uj5u.com熱心網友回復:
嘗試,
....
(item, index) => (
(firstCondition && index !== 1)
|| (secondCondition && index !== 2)
|| true // (!firstCondition && !secondCondition)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/456290.html
標籤:javascript 打字稿
上一篇:CSS中的反向查找
