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
4444
Aeroport
Разобрался, удалил, сорян

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


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

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


10/03/16
4444
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
5629
кран.набрать.грамота
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
5629
кран.набрать.грамота
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
4744
К слову, let в IE11 не работает...

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

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



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

Сейчас этот форум просматривают: Geen


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

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