[英]JavaScript: Add JSON objects from one array to another array conditionally
[英]Javascript: Conditionally add objects to array in one line
在我的 JS 代碼中,我有兩個布爾值, flag1
和flag2
。 我想創建一個數組['a', 'b', 'c']
,其中只有當flag1
為真時才包含a
,只有當flag2
為真時才包含b
。 我現在擁有的是[flag1? 'a': null, 'b', flag2? 'c': null]
[flag1? 'a': null, 'b', flag2? 'c': null]
[flag1? 'a': null, 'b', flag2? 'c': null]
,但如果flag1
和flag2
為假,這會給我[null, 'b', null]
而不是['b']
。
解決方案:
這是我找到的最干凈的方法: [...(flag1? ['a']: []),'b',...(flag2? ['c']: [])]
您可以采用 function,它返回數組內的值或用於展開到數組中的空數組。
const either = (condition, value) => condition? [value]: [], getArray = (flag1, flag2) => [...either(flag1, 'a'), ...either(flag2, 'b'), 'c' ]; console.log(...getArray(true, true)); console.log(...getArray(false, true)); console.log(...getArray(true, false)); console.log(...getArray(false, false));
另一個實現:
const flag1 = true; const flag2 = false; const data = [[flag1, 'a'], [flag2, 'b'], [true, 'c']]; const result = data.flatMap(([flag, letter]) => flag? letter: []); console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.