Ich habe 2 Arrays:

var array1 = [1,4,8,10,12]
var array2 = [3,2,undefined,9,undefined]

Ich brauche also ein Ergebnisarray, in dem alle Werte von array1 durch die Werte von array2 ersetzt wurden, aber nur für den Fall, dass der spezifische Index von array2 kein {{X3 ist }} (eine gültige Nummer). Der Wert des Index von array1 sollte in diesem Fall bestehen bleiben.

Das Ergebnis sollte sein:

resultArray = [3, 2, 8, 9, 12]

Ich konnte es nicht zum Laufen bringen.

1
Jaybruh 18 Apr. 2018 im 23:31

3 Antworten

Beste Antwort

Sie können explizit nach undefined suchen und den Wert array1 für die Zuordnung verwenden.

var array1 = [1, 4, 8, 10, 12],
    array2 = [3, 2, undefined, 9, undefined],
    result = array2.map((v, i) => v === undefined ? array1[i] : v);
    
console.log(result)
2
Nina Scholz 18 Apr. 2018 im 20:58

Eine Alternative mit der Funktion {{ X0}}

var array1 = [1, 4, 8, 10, 12],
    array2 = [3, 2, undefined, 9, undefined],
    result = Array.from(array2, (n, i) => isNaN(n) ? array1[i] : n);

console.log(result);
<script src="https://codepen.io/egomezr/pen/dmLLwP.js"></script>
1
Ele 18 Apr. 2018 im 20:49
 const resultArray = array2.map((el, i) => isNaN(el) ? array1[i] : el);

Beachten Sie, dass dies undefined ersetzt, aber nicht null, da es sich um ein sehr lustiges Sprachdesign handelt.

4
Jonas Wilms 18 Apr. 2018 im 20:33