javascript создание нового массива

178
22 июня 2017, 06:44

У меня есть массив чисел [65, 44, 12, 4], Мне надо получить новый массив в котором будет сложение цифр каждого элемента массива.

Как поправить мой код?

var numbers = [65, 44, 12, 4]; 
var sum = 0; 
for (var i = 0; i < numbers.length; i++) { 
  while (numbers[i] > 0) { 
    sum += numbers[i] % 10; 
 
    numbers[i] = Math.floor(numbers[i] / 10); 
  } 
} 
document.write(sum);

Answer 1

Ты используешь неверный подход. В прошлом вопросе @Sergiks дал функцию, которая вычислит сумму цифр для одного числа. (вместо нее можно взять любую другую функцию из ответов)

Теперь, тебе надо взять эту функцию и применить ко всем числам в массиве.

Для этого подходит метод map, который и вернет новый массив:

var numbers = [65, 44, 12, 4]; 
 
function digsum(n) { 
  var sum = 0; 
  while (n) sum += n % 10, n = Math.floor(n / 10); 
  return sum; 
} 
 
var result = numbers.map(digsum); 
 
document.write(JSON.stringify(result));

READ ALSO
Не срабатывает аутентификация

Не срабатывает аутентификация

Привет всем! Помогите пожалуйста найти ошибку

243
yii2 проблемы с установкой

yii2 проблемы с установкой

Установил Composer, обновил его, установил yii2, перехожу в браузер для проверки,а вместо "приветствия" выдает следующие ошибки :

267
Как вывести только уникальные метки wordpress?

Как вывести только уникальные метки wordpress?

Как вывести только уникальные метки wordpress?

220
OneSignal отправить уведомление через php

OneSignal отправить уведомление через php

Этот код отправляет на устройство c идентификатором ids пуш уведомление

279