Bagaimana untuk mengembalikan pasangan nilai kunci daripada fungsi peta menggunakan operator spread
P粉253800312
P粉253800312 2023-08-13 17:18:34
0
1
477
<p>Saya mempunyai objek dan tatasusunan. Andaian: </p> <pre class="brush:php;toolbar:false;">const first = { 'key1': 'sesuatu tarikh', 'key2': 'sesetengah tarikh' } const second = ['key3', 'key4']</pre> <p>Kemudian gunakan sintaks lanjutan untuk menggabungkannya menjadi satu objek. Untuk setiap item dalam tatasusunan, saya ingin mencipta pasangan nilai kunci baharu dan memasukkannya ke dalam objek gabungan ini. Pada masa ini, saya hanya boleh mengembalikan objek daripada fungsi peta, bukan pasangan nilai kunci. Bagaimana untuk menukar ini? </p> <pre class="brush:php;toolbar:false;">const combined = { ... pertama, ...second.map(key => ({ [key]: new Date() })) // Kembalikan pasangan nilai kunci dan bukannya objek }</pre> <p>Hasil yang saya dapat:</p> <pre class="brush:php;toolbar:false;">{ '0': { key3: 'some date' }, '1': { key4: 'some date' }, key1: 'sesuatu tarikh', key2: 'sesuatu tarikh' }</pre> <p>Hasil yang saya mahukan:</p> <pre class="brush:php;toolbar:false;">{ key1: 'sesuatu tarikh', key2: 'sesuatu tarikh', key3: 'sesuatu tarikh', key4: 'sesuatu tarikh' }</pre> <p><br /></p>
P粉253800312
P粉253800312

membalas semua(1)
P粉925239921

Tidak boleh melakukan ini. map Mengeluarkan array (di mana setiap nilai adalah hasil daripada menghantar nilai pada indeks yang sepadan dalam tatasusunan asal kepada fungsi). Jika anda mengembangkan tatasusunan menjadi objek, anda akan mendapat indeks (nombor) sebagai nama harta dan nilai sebagai nilai.

Jika anda ingin bermula dengan tatasusunan dan berakhir dengan objek, maka map就是错误的工具。请改用reduceadalah alat yang salah. Sila gunakan kurangkan sebaliknya.

Serupa dengan kod berikut:

const combined = second.reduce(
    (prev, curr) => {
        return {
            ...prev,
            [curr]: new Date()
        };
    },
    first
);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan