Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.07.2017, 02:01
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

что вы хотите увидеть при таких значениях массива?
[1, 2, 3, 'a', 'b', 'c', 'Infinity', -Infinity]
Ответить с цитированием
  #12 (permalink)  
Старый 10.07.2017, 06:51
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Спасибо)
Ответить с цитированием
  #13 (permalink)  
Старый 10.07.2017, 10:19
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

(el=+el?+el:0)
А можете мне обьяснить это выражение, пожалуйста.
Я правильно понимаю,что здесь используется условный оператор?
Ответить с цитированием
  #14 (permalink)  
Старый 10.07.2017, 11:04
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Сообщение от j0hnik Посмотреть сообщение
EmperioAf. можно еще быстрей и через тернарный без функции
var arr = ['1', '2', '3', 'a', 'b', 'c', '4', '5', '6'],
sum = arr.reduce((sum, el) => sum+(el=+el?+el:0));
alert(sum);
а что,если у меня все элементы строчное?
Этот пример тогда не работает.
Как можно это решить?
Ответить с цитированием
  #15 (permalink)  
Старый 10.07.2017, 11:17
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Reduce принимает 2 аргумента, первый - callback ф-ия, второй initialValue.
Ну и если выбрали унарный оператор, то логичнее выглядит так.
arr.reduce((sum, el) => sum + (+el || 0), 0)

Последний раз редактировалось EmperioAf, 10.07.2017 в 11:32.
Ответить с цитированием
  #16 (permalink)  
Старый 10.07.2017, 13:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Tanya51 Посмотреть сообщение
(el=+el?+el:0)
А можете мне обьяснить это выражение, пожалуйста.
Я правильно понимаю,что здесь используется условный оператор?
правильно, все что не число будет равно нулю.
пример:
+'5' -приведение строки к числу. // 5
+'с' -к числу не приведется . // NaN

правильнее наверное будет так:

var arr = ['1', '2', true, 's'],
sum = arr.reduce((sum, el) => +sum+(el=el!==true?+el?+el:0:0));
alert(sum);


потому что унарный из true делает единицу

Последний раз редактировалось j0hnik, 10.07.2017 в 14:25.
Ответить с цитированием
  #17 (permalink)  
Старый 11.07.2017, 13:24
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Помогите пожалуйста еще с вот этой задачкой
https://javascript.ru/forum/showthre...168#post458168
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка текущего значения свойства “right” из JS pepel266 Общие вопросы Javascript 4 15.09.2016 17:10
Проверка свойства стиля levshaszr Общие вопросы Javascript 9 13.11.2015 15:42
Проверка наличия текста в поле формы Glook jQuery 6 16.07.2010 19:46
проверка наличия строчки в текстовом файле a_lex jQuery 5 05.05.2010 22:58
Проверка наличия логина в БД при регистрации, с помощью ajax storng Общие вопросы Javascript 4 09.04.2010 20:24