So geben Sie Schlüssel-Wert-Paare aus der Kartenfunktion mithilfe des Spread-Operators zurück
P粉253800312
P粉253800312 2023-08-13 17:18:34
0
1
446
<p>Ich habe ein Objekt und ein Array. Annahme:</p> <pre class="brush:php;toolbar:false;">const first = { 'key1': 'irgendwann', 'key2': 'irgendwann' } const second = ['key3', 'key4']</pre> <p>Verwenden Sie dann die erweiterte Syntax, um sie zu einem einzigen Objekt zusammenzuführen. Für jedes Element im Array möchte ich ein neues Schlüssel-Wert-Paar erstellen und es in dieses zusammengeführte Objekt einfügen. Derzeit kann ich von der Map-Funktion nur Objekte zurückgeben, keine Schlüssel-Wert-Paare. Wie kann man das ändern? </p> <pre class="brush:php;toolbar:false;">const Combined = { ...Erste, ...second.map(key => ({ [key]: new Date() })) // Schlüssel-Wert-Paare anstelle von Objekten zurückgeben }</pre> <p>Das Ergebnis, das ich erhalten habe: </p> <pre class="brush:php;toolbar:false;">{ '0': { key3: 'irgendein Datum' }, '1': { key4: 'irgendein Datum' }, key1: 'irgendwann', key2: 'Irgendwann' }</pre> <p>Das gewünschte Ergebnis:</p> <pre class="brush:php;toolbar:false;">{ key1: 'irgendwann', key2: 'irgendwann', key3: 'irgendwann', key4: 'Irgendwann' }</pre> <p><br /></p>
P粉253800312
P粉253800312

Antworte allen(1)
P粉925239921

无法这样做。 map 输出一个数组(其中每个值是通过将原始数组中匹配索引处的值传递给函数的结果)。如果将数组展开到对象中,您将得到索引(数字)作为属性名称和值作为值。

如果您想从数组开始并以对象结束,那么map就是错误的工具。请改用reduce

类似以下代码:

const combined = second.reduce(
    (prev, curr) => {
        return {
            ...prev,
            [curr]: new Date()
        };
    },
    first
);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!