Показать сообщение отдельно
  #4 (permalink)  
Старый 18.09.2019, 11:42
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

const sum = function sum(arr) {
  arr = arr.map(n => Array.isArray(n) ? sum(n) : parseFloat(n) || 0);
  return eval(arr.join('+'));
}

alert(sum([1, 2, '3x']));
alert(sum([1, 2, 'x3']));
alert(sum([1, [1, 2], 2]));



or

const sum = arr => eval(arr.map(n => Array.isArray(n) ? sum(n) : parseFloat(n) || 0).join('+'));

alert(sum([1, 2, '3x']));
alert(sum([1, 2, 'x3']));
alert(sum([1, [1, 2], 2]));


or

const sum = function sum(arr) {
  let res = 0;
  
  for (const n of arr) {
  	res += Array.isArray(n) ? sum(n) : parseFloat(n) || 0;
  }
  return res;
}

alert(sum([1, 2, '3x']));
alert(sum([1, 2, 'x3']));
alert(sum([1, [1, 2], 2]));

Последний раз редактировалось ruslan_mart, 18.09.2019 в 11:46.
Ответить с цитированием