Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не выполняется условие, JS?

Nikassaiop End Просветленный (41589), на голосовании 1 год назад
 function shuffle(n) { 
console.log(Signs);
res = new Set();
res.add(Signs[n]);
console.log(res.length);
while(res.length<4){
console.log("GO");
tick = random(0, 29);
console.log(tick);
res.add(Signs[tick]);
}
return res
}
Такой код имею, благодаря консоли выявил, что несмотря на res.length = 1 цикл while выполняется 0 раз, хотя, по идее, эта длина меньше 4, почему не робит?
Голосование за лучший ответ
Night Prowler Мудрец (15236) 1 год назад
У Set нет length, есть size.
Я хз как у тебя 1 выводится в консоль
Nikassaiop EndПросветленный (41589) 1 год назад
Каеф, большое спасибо!
P.S. Оно там и правда не работало, но дальше по коду был просто вывод содержимого.
Яков Гото Искусственный Интеллект (320911) 1 год назад
Прежде всего узнай, чем отличаются объекты, а set - это итерируемый объект, от массивов. Выведи в консоль значение, разверни ветку прототипов и попробуй найти то, что отвечает за размер.А если не можешь, то в твоем случае существует сразу два способа. Использовать метод .size из методов итерируемых объектов... или преобразовать объект в массив с помощью spread и тогда уже использовать методы массивов.
 console.log(res.size); 
console.log([...res].length);
Похожие вопросы