Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 25.07.2017, 23:34   #1
Kenny Fox
 
Регистрация: 05.06.2017
Сообщений: 7
Репутация: 10
По умолчанию Странный цикл 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, 23:47   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,458
Репутация: 3242

icq: 512-765
skype: alexp.frl
По умолчанию

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

Код:

var counts = {};
counts[42] = 99;

а потом
Код:

counts[42]

а потом
Код:

counts[41]

а потом
Код:

counts[41] || 0

и
Код:

counts[41] || 0 || 86

и
Код:

counts[41] || 0 || 86 || 87

Ну и почитают как || работает если так и непонятно.

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

Сколько нужно студентов, чтобы написать счетчик?
— 4, один пишет, трое не понимают как он работает.
__________________
Работаю. В этот раз за деньги.
Жду ваши искренние спасибы на яндекс-кошелек: 410011068154587
Naive вне форума   Ответить с цитированием
Старый 26.07.2017, 14:19   #4
vexora_man
Пользователь
 
Регистрация: 14.05.2017
Сообщений: 17
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


19:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru