Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2017, 22:34   #1
Kenny Fox
 
Регистрация: 05.06.2017
Сообщений: 7
По умолчанию Странный цикл forEach!

3 студента не могут понять 1 маленький код.
Код:
var array = ["Bob", "Jon", "Bob", "Jack", "Jon"]; 
var counts = {}; 
array.forEach(function(x) { counts[x] = (counts[x] || 0)+1; }); 
console.log(counts);
 
    // Результат:
    // Bob: 2
    // Jack: 1
    // Jon: 2
Вопрос: Как работает этот код? А именно, не понятно что делает код в теле функции?
Код:
(counts[x] || 0)+1;
Kenny Fox вне форума Ответить с цитированием
Старый 25.07.2017, 22:47   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

ну так пусть откроют DevTools в Хроме и напишут в консоли

Код:
var counts = {};
counts[42] = 99;
а потом
Код:
counts[42]
а потом
Код:
counts[41]
а потом
Код:
counts[41] || 0
и
Код:
counts[41] || 0 || 86
и
Код:
counts[41] || 0 || 86 || 87
Ну и почитают как || работает если так и непонятно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 25.07.2017 в 22:49.
Alex11223 вне форума Ответить с цитированием
Старый 25.07.2017, 23:06   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Сколько нужно студентов, чтобы написать счетчик?
— 4, один пишет, трое не понимают как он работает.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 26.07.2017, 13:19   #4
vexora_man
Пользователь
 
Регистрация: 14.05.2017
Сообщений: 29
По умолчанию

Если по индексу x еще ничего нет, то заполняем его нулем. На это указывает оператор или. То бишь undefined или 0 даст 0
vexora_man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл foreach при работе с коллекциями и массивами BadCats C# (си шарп) 9 10.09.2016 22:35
Цикл foreach Bilargo Помощь студентам 5 06.05.2016 17:29
Классы в C# и цикл foreach densx Помощь студентам 2 30.11.2010 03:33
Странный цикл у меня в StringGrid artemavd Общие вопросы Delphi 14 25.07.2010 17:58
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34