Je ne pense pas qu'il y ait quelque chose construit dans l'objet Array
qui le fera pour vous, vous devrez faire la boucle. La boucle est trivial, si:
var index, length;
var result = [];
// assertion: arrayA.length === arrayB.length
result.length = arrayA.length; // Helps performance in some implemenations, harmless in others
for (index = 0, length = arrayA.length; index < length; ++index) {
result[index] = arrayA[index] + arrayB[index];
}
(j'ai rebaptisés stringA
->arrayA
et stringB
->arrayB
pour éviter toute confusion.)
Si les tableaux sont différentes longueurs ou certaines des entrées dans les tableaux ne sont pas définis (ce qui est tout à fait possible, des tableaux JavaScript sont rares), vous voulez gérer que dans la boucle, par exemple:
var index, length, Apresent, Bpresent;
var result = [];
result.length = Math.max(arrayA.length, arrayB.length); // Helps performance in some implementations, harmless in others
for (index = 0, length = result.length; index < length; ++index) {
Apresent = arrayA.hasOwnProperty(index);
Bpresent = arrayB.hasOwnProperty(index);
if (Apresent && Bpresent) {
result[index] = arrayA[index] + arrayB[index];
}
else if (Apresent) {
result[index] = arrayA[index];
}
else if (Bpresent) {
result[index] = arrayB[index];
}
}
Si l'ar les rayons sont clairsemés et ils sont tous les deux rares dans le même index, le tableau résultant sera également épars.
J'ai supprimé ma réponse parce que j'ai oublié que je * devrais utiliser 'Math.max()' pour éviter de parcourir un plus petit tableau. Donc +1 à toi Nick! – alex
Merci Nick! Tu m'as encore aidé! – Mircea
Cela aboutira à des entrées dans le tableau de destination aux index où il n'y a pas d'entrées dans l'un ou l'autre des tableaux sources (s'il existe de telles entrées). –