Как складывать стоимость тех же положений arrays?

Я хочу сложить стоимость тех же положений? Здесь моя договоренность:

var arr1 = ["1","2","3","4"];
var arr2 = ["2","1","3","4"];

Результат должен быть:

var NuevoArreglo = ["3","3","6","8"];

Я жду помощь.

4
задан 29.06.2016, 00:30
5 ответов

Ты можешь пробовать следующее:

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);
3
ответ дан 24.11.2019, 13:58
  • 1
    Простой и простой, большое спасибо!:) –  Jean Paul 28.06.2016, 21:57

Как альтернатива, я буду показывать тебя, как делание этого используя функцию 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 или структуры сходного контроля, так как он виден цепью функций и нет стольких квадратных скобок. Но это вещь вкуса.

3
ответ дан 24.11.2019, 13:58
  • 1
    Хороший ответ, она похожая на м и # 237; в, y они отвечают действительно на вопрос с данными mistrados из-за пользователя. Это и #250; nico, что мне казаться немного избыточным, - использование двух maps, когда с одним ты можешь делать все операции. В и # 250; n схвати и # 237; хорошие explicaci и # 243; n. =) –  Jose Hermosilla Rodrigo 29.06.2016, 00:53
  • 2
    @JoseHermosillaRodrigo, если, мы отвечаем почти в то же время;) только quize делать incapie в, как оно функционирует map, если, вместо того, чтобы только давать ему solici и # 243; n. Для меня он имеет больше чувство, которое обращало бы эти arrays в числа. –  rnrneverdies 29.06.2016, 00:57
  • 3
    S и # 237; поскольку я сказал хороший explicaci и # 243; n использования map. Но в cuesti и # 243; n optimizaci и # 243; n ты можешь делать operaci и # 243; n суммы и conversi и # 243; n разом, вместо того, чтобы 3 раза пробегают список. В и # 250; n схвати и # 237; +1, так как я думаю, что это лучший ответ, чем те, у которых есть м и # 225; s puntuaci и # 243; n. –  Jose Hermosilla Rodrigo 29.06.2016, 01:07

Он пробует таким образом:

var arr1 = ["1","2","3","4"];
var arr2 = ["2","1","3","4"];
var result = [];

for (var i = 0; i < arr1.length; i++) {
  if (arr1[i] != arr2[i] ) {
    result[i] = parseint(arr1[i])+parseint(arr2[i]);
  }
}
console.log(result);
2
ответ дан 24.11.2019, 13:58

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);
2
ответ дан 24.11.2019, 13:58

Может быть, самый простой выбор состоял в том, чтобы использовать 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 содержат Strings и ты хочешь сложить их и вновь конвертировать их в String, согласно ожидаемому выводу, который ты показываешь в вопросе.

(+x + +arr2[i]) + ""

Предопределяя в каждую переменную с символом + мы говорим, что обратил в число переменную. И добавляя + "" мы конвертируем конечное число, сложенное в String.

Имей в виду, что у обоих списков должен быть тот же размер.

0
ответ дан 24.11.2019, 13:58

Теги

Похожие вопросы