2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Использование for...in в языке JavaScript
Сообщение13.07.2018, 11:35 
Аватара пользователя


01/12/11

8634
На обучающем сайте есть задание - написать процедуру, подсчитывающую количество пользователей, находящихся онлайн. При этом надо использовать команду for...in.

У меня никак не хочет работать этот код, хоть тресни, сегодня с самого утра пытаюсь найти ошибку, но не нахожу. Отлаговая пошадка тоже не помогает.

Вот код:

код: [ скачать ] [ спрятать ]
Используется синтаксис Javascript
let users = {
  Alan: {
    age: 27,
    online: false
  },
  Jeff: {
    age: 32,
    online: true
  },
  Sarah: {
    age: 48,
    online: false
  },
  Ryan: {
    age: 19,
    online: true
  }
};

function countOnline(obj) {
  // change code below this line
      var counter = 0;
          for (let user in obj) {
              if (user.online == true) {
                 counter++;
              }
          };
      return counter;
  // change code above this line
}

console.log(countOnline(users));
 


Пожалуйста, хотя бы намекните, что я делаю не так.

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 12:20 


10/03/16
3871
Aeroport
Разобрался, удалил, сорян

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 12:27 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
Ktina в сообщении #1326437 писал(а):
Используется синтаксис Javascript
              if (user.online == true) {
Проблема, конечно, не в этом, но так же нельзя!!!!!!!111одинодин
Надо:
Используется синтаксис Javascript
              if (user.online) {

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 12:40 


10/03/16
3871
Aeroport
rockclimber

(Оффтоп)

a == true это канешн колхоз, но неужели ж выдаст ошибку? Ведь слева и справа bool.

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 12:40 


03/10/06
826
либо три штуки равно?

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 12:49 
Заслуженный участник


27/04/09
28128
Я недостаточно знаю JS, тоже хотел возмутиться по поводу == true, но это ведь действительно не должно влиять на корректность кода. Как и === — да какая вообще разница в данном случае? Приведения всё равно не будет с предложенными-то данными, так что все три варианта должны бы, насколько я понимаю, давать ровно то же.

-- Пт июл 13, 2018 14:51:26 --

Так что, собственно, то, что надо было написать в теме с самого начала, но упорно не приходило на ум:

Ktina в сообщении #1326437 писал(а):
У меня никак не хочет работать этот код, хоть тресни, сегодня с самого утра пытаюсь найти ошибку, но не нахожу.
Что именно у вас не работает, и почему вы это решили?

Не гадать же, в самом деле.

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 13:11 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
ozheredov в сообщении #1326456 писал(а):
a == true это канешн колхоз
Я, собственно, только это и хотел сказать. :mrgreen:

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 15:26 
Аватара пользователя


01/12/11

8634
arseniiv в сообщении #1326461 писал(а):
Что именно у вас не работает, и почему вы это решили?

Не гадать же, в самом деле.

Изображение

-- 13.07.2018, 15:28 --

rockclimber в сообщении #1326467 писал(а):
ozheredov в сообщении #1326456 писал(а):
a == true это канешн колхоз
Я, собственно, только это и хотел сказать. :mrgreen:

А я в курсе. А ещё можно вместо $!=$ написать обыкновенный минус (во взяком случае, в Си так).

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 15:39 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
1. Перепишите функцию:
Используется синтаксис Javascript
function countOnline(obj) {
  // change code below this line
      var counter = 0;
          for (let user in obj) {
              console.log(user);
          };
      return counter;
  // change code above this line
}
2. Запустите.
3. Объясните результат.

Если непонятно - почитайте тут: http://learn.javascript.ru/object Написанного должно хватить, чтобы понять.
Если не получится - посмотрим, как именно у вас не получится.

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 16:20 
Заслуженный участник


27/04/09
28128
Ага, так, оказывается, семантика этого цикла немного другая по сравнению с одноимёнными в некоторых других языках, и более точным их аналогом будет forof! (Потому я не видел ошибку, не запустив наконец код и не найдя независимо описываемое в спецификации поведение.)

Ktina в сообщении #1326512 писал(а):
А ещё можно вместо != написать обыкновенный минус (во взяком случае, в Си так).
Вы хотели сказать, !, а не минус, видимо.

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 16:52 
Аватара пользователя


01/12/11

8634
arseniiv в сообщении #1326520 писал(а):
Ktina в сообщении #1326512 писал(а):
А ещё можно вместо != написать обыкновенный минус (во взяком случае, в Си так).
Вы хотели сказать, !, а не минус, видимо.

Если речь о Си, то именно минус.

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 17:14 
Заслуженный участник


27/04/09
28128
Раз это ваша тема и мы оффтопим с вами, то давайте-ка пруф. :wink:

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 17:22 
Аватара пользователя


01/12/11

8634
arseniiv в сообщении #1326534 писал(а):
Раз это ваша тема и мы оффтопим с вами, то давайте-ка пруф. :wink:

Используется синтаксис C
#include <stdio.h>

int main()
{
    int a = 1;
    int b = 2;
        if (a-b) {
            printf("Hello!");
        }
    return 0;
}
 

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 17:26 
Заслуженный участник


27/04/09
28128
А, так вы об этом. Я подумал, имелась в виду замена x != true (на !x). В самом деле, обсуждалось выражение вида x == true, вы заговорили о != и ничего не добавили, а между тем в языках с логическими значениями они не всегда могут друг из друга быть вычтены (или знакоинвертированы, т. к. я подумал про унарный минус).

 Профиль  
                  
 
 Re: Использование for...in в языке JavaScript
Сообщение13.07.2018, 18:08 
Заслуженный участник
Аватара пользователя


01/09/13
4318
К слову, let в IE11 не работает...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group