[英]How to conditionally add props in javascript object reduce?
以下函數減少一個數組並映射一個新的 object。
getProps() {
return this.items
.reduce((map,props)=>
({...map, [props.name]: props.value, checked: true)})
}), {})
}
我想要實現的是,如果滿足條件,我想有條件地添加選中的屬性(鍵)。
像這樣的東西。
getProps() {
getProps() {
return this.items
.reduce((map, props)=>
( {...map
, [props.name]: props.value
, (props.required) ? checked: true : null
// which means that if props.required is true
// then add checked: true
// else do nothing (do not add checked)
,)})}), {})
}
經驗值
this
意味着如果 props.required 為真,則添加檢查值為真的屬性(以便添加鍵:值對檢查:真,否則什么也不做(意味着不添加鍵:值對檢查:真)
更新
這不是有條件地將“真”值分配給選中的屬性。
即將有條件地添加選中的屬性。 注意這里的區別...
一個簡單的if
語句就可以解決問題:
getProps() {
return this.items.reduce(
(map, props) => {
if (!props.checked) return map;
return ({...map, [props.name]: props.value, checked: true });
},
{}
);
}
或使用條件運算符:
getProps() {
return this.items.reduce(
(map, props) => props.checked
? map
: ({...map, [props.name]: props.value, checked: true }),
{}
);
}
我想你在追求這樣的事情
{ [props.name]: props.value, ...(props.required && { checked: true }) }
這是使用三元運算符的等價物
{ [props.name]: props.value, ...(props.required ? { checked: true } : {}) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.