Я не думаю, что там все, что встроено в объект Array
, который сделает это за вас, вам нужно будет сделать цикл. Цикл тривиально, хотя:
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];
}
(я переименовал stringA
->arrayA
и stringB
->arrayB
, чтобы избежать путаницы.)
Если массивы разной длины или некоторых из записей в массивах не определены (что вполне возможно, JavaScript массивы немногочисленны), вы хотите, чтобы справиться с этим в цикле, например:
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];
}
}
Если аг лучи редки, и оба они оказываются разреженными по одному и тому же индексу, результирующий массив также будет скудным.
Я удалил свой ответ, потому что забыл, что я * должен * использовать 'Math.max()', чтобы избежать повторения меньшего массива. Так +1 к тебе Ник! – alex
Thanx Nick! Ты помог мне снова! – Mircea
Это приведет к записям в целевом массиве в индексах, где в исходном массиве нет записей (если есть такие записи). –