Я хочу сложить стоимость тех же положений? Здесь моя договоренность:
var arr1 = ["1","2","3","4"];
var arr2 = ["2","1","3","4"];
Результат должен быть:
var NuevoArreglo = ["3","3","6","8"];
Я жду помощь.
Ты можешь пробовать следующее:
var arr1 = [1,2,3,4];
var arr2 = [2,1,3,4];
var r = [];
for(i = 0; i < arr1.length; i++){
r[i] =arr1[i]+arr2[i];
}
console.log(r);
Как альтернатива, я буду показывать тебя, как делание этого используя функцию Array.prototype.map
.
Ты должен знать, что метод map
стоит обрабатывать договоренность и получать другую договоренность, но преобразованный посредством функции (которая делает преобразование); Может быть, я заинтересовал тебя знать, что это один из существенных методов, чтобы работать с договоренностями, рядом с Array.prototype.reduce
который используется, чтобы укреплять / обобщать договоренности данных.
Намерение за map
он состоит в том, чтобы преобразовывать каждый элемент в новый элемент, с этим в разуме... считай следующий пример.
// si en lugar de cadenas (ej. "1") usas numeros (ej [1,2,3,4])
// puedes eliminar las partes de Number abajo y el map de toString.
var arr1 = ["1", "2", "3", "4"];
var arr2 = ["2", "1", "3", "4"];
// ahora usamos el map
var result = arr1.map(Number)
.map( (item, ix) => item + Number(arr2[ix]) )
.map( (item) => item.toString() );
// salida
console.log(result);
Объяснение
.map(Number)
конвертируй "1"
в 1
(тип числовой информации).map( (item, ix) => item + Number(arr2[ix]) )
из-за каждого числа, ищи и конвертируй соответствующее число arr2
и он складывает их. .map( (item) => item.toString() )
, вновь преврати каждое число в string, чтобы получать результат. Заметь: я использовал несколько maps, чтобы подтверждать примерами лучше, как они используются, не необходимо делать это в стольких шагах, смоги делаться в единственном выполнении:
arr1.map( (item, ix) => (Number(item) + Number(arr2[ix])).toString() );
Сейчас.
Если вместо цепей, тебе идут числа, вещь гораздо проще.
// si en lugar de cadenas (ej. "1") usas numeros (ej [1,2,3,4])
// puedes eliminar las partes de Number abajo y el map de toString.
var arr1 = [1, 2, 3, 4];
var arr2 = [2, 1, 3, 4];
var result = arr1.map( (item, ix) => item + arr2[ix] );
// salida
console.log(result);
Я надеюсь, что он подает тебя.
Заметь: Мне кажется более читабельным использовать map
что использовать один loop тип for each
или структуры сходного контроля, так как он виден цепью функций и нет стольких квадратных скобок. Но это вещь вкуса.
AquГ - я оставляю тебе один script
, где ты делаешь сумму посредством forEach, этот способ это делать - созерцая новый EcmaScript 6.
Наблюдает использование arr1.forEach
.
var arr1 = ["1","2","3","4"];
var arr2 = ["2","1","3","4"];
var total = new Array(); //Creamos un array Vacio
arr1.forEach((a,b) => { total.push(Number(a)+Number(arr2[b])) } ); //Iteramos el array llamado: arr1. Con el método Number los declaramos enteros y los sumamos
console.log(total);
Может быть, самый простой выбор состоял в том, чтобы использовать Array.map()
:
var arr1 = ["1","2","3","4"];
var arr2 = ["2","1","3","4"];
var nuevo = arr1.map((x,i)=> (+x + +arr2[i]) + "");
console.log(nuevo);
Согласно твоему вопросу, начальные Arrays содержат String
s и ты хочешь сложить их и вновь конвертировать их в String
, согласно ожидаемому выводу, который ты показываешь в вопросе.
(+x + +arr2[i]) + ""
Предопределяя в каждую переменную с символом +
мы говорим, что обратил в число переменную. И добавляя + ""
мы конвертируем конечное число, сложенное в String.
Имей в виду, что у обоих списков должен быть тот же размер.