の改善私は可能であれば私はそれが非常に扱いにくい見つけるように改善したい条件文を持っている:が条件ロジックに
let action
if(options.add) {
action = 'ADD'
} else if(options.update) {
action = 'UPDATE'
} else {
action = 'REMOVE'
}
は、ある種のこのスイッチまたは三元を作ることが可能ですか?
の改善私は可能であれば私はそれが非常に扱いにくい見つけるように改善したい条件文を持っている:が条件ロジックに
let action
if(options.add) {
action = 'ADD'
} else if(options.update) {
action = 'UPDATE'
} else {
action = 'REMOVE'
}
は、ある種のこのスイッチまたは三元を作ることが可能ですか?
あなたのコードは今、私には大丈夫です。しかし、あなたがまだ選択肢を探しているのなら、Ternary?
let action = options.add ? "ADD" : (options.update ? "UPDATE" : "REMOVE") ;
あなたはよりダイナミックなソリューションをしたい場合は、アクションの配列を作成し、そのオブジェクトでそのアクションを見つけるために、そのアレイ上で見つけ使用することができますあなたが三元操作をしたい場合
let action;
action = (options.add) ? 'ADD' : ((options.update) ? 'UPDATE' : 'REMOVE');
action = options.add && 'ADD' || options.update && 'UPDATE' || 'REMOVE'
これを試してみて、それを変数に代入するか、またはデフォルト値のREMOVE
を設定します。
let action;
let options = {add: 1}
let actions = ['add', 'update', 'remove'];
action = (actions
.find(a => options[a]) || 'remove')
.toUpperCase();
console.log(action)
また、オプションのオブジェクトを取得し、アクション値を返す関数を作ることができます。
let action;
var actions = ['add', 'update', 'remove'];
function setAction(options = {}) {
return (actions.find(a => options[a]) || 'remove')
.toUpperCase();
}
action = setAction({add: 1});
console.log(action)
action = setAction();
console.log(action)
興味深い、私は三元スタイルのこのタイプの知りませんでした – styler