連想配列オブジェクトの値をすべて変更したいです。
以下いろいろなパターン(一次元連想配列)がある中で、
「objからresultを得たい」つまり
「xをtrueに、それ以外をすべてfalseにしたい」
のですが、モダンな書き方というか、forEachなど使わず一行でやるにはどうすべきでしょうか?
js
1// パターン1 2var obj = { a:true, b:false, x:false }; 3var result = { a:false, b:false, x:true}; 4 5// パターン2 6var obj = { c:false, d:false, x:false }; 7var result = { c:false, d:false, x:true}; 8 9// パターン3 10var obj = { a:true, b:true, e:true, x:true}; 11var result = { a:false , b:false, e:false, x:true}; 12
以下、なんとなく惜しい感じまでできたのですが、余計な配列が増えてしまうのです。
var result = Object.keys(obj).map( key => key === 'x' ? obj = { [key]: true } : obj = { [key]: false } ); console.log(result);
適切なメソッドを見つけることができません。宜しくお願い致します。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/13 10:33
2020/08/13 10:38
2020/08/13 10:41