スプレッド演算子を使用してマップ関数からキーと値のペアを返す方法
P粉253800312
2023-08-13 17:18:34
<p>オブジェクトと配列があります。仮定:</p>
<pre class="brush:php;toolbar:false;">const first = {
'key1': 'ある日付',
'key2': 'ある日付'
}
const Second = ['key3', 'key4']</pre>
<p>次に、拡張構文を使用してそれらを 1 つのオブジェクトにマージします。配列内の項目ごとに、新しいキーと値のペアを作成し、それをこのマージされたオブジェクトに置きたいと考えています。現時点では、map 関数からオブジェクトのみを返すことができ、キーと値のペアを返すことはできません。これを変更するにはどうすればよいですか? </p>
<pre class="brush:php;toolbar:false;">const generated = {
...初め、
...second.map(key => ({ [key]: new Date() })) // オブジェクトの代わりにキーと値のペアを返します
}</pre>
<p>得られた結果:</p>
<pre class="brush:php;toolbar:false;">{
'0': { key3: 'ある日付' },
'1': { key4: 'ある日付' },
key1: 'いつかの日付',
key2: 'いつかの日付'
}</pre>
<p>私が望む結果:</p>
<pre class="brush:php;toolbar:false;">{
key1: 'いつかの日付',
key2: 'いつかの日付'、
key3: 'いつかの日付'、
key4: 'いつかの日付'
}</pre>
<p><br /></p>
これはできません。
map
array を出力します (各値は、元の配列内の一致するインデックスの値を関数に渡した結果です)。配列をオブジェクトに展開すると、インデックス (数値) がプロパティ名として、値が値として取得されます。配列で始めてオブジェクトで終わりたい場合、
map
は間違ったツールです。代わりにreduce
を使用してください。次のようなコード:
リーリー