2016-12-27 6 views
1

Это должно быть очень просто, но у меня нет работы.NodeJS как добавить объекты в набор и повторить?

var Set = require("collections/set"); 

function User() { 
    this.name = 'something'; 
} 

var clients = new Set(); 

var a = new User(); 
var b = new User(); 
clients.add(a); 
clients.add(b); 

var arr = clients.toArray(); 
for (var user in arr) { 
    console.log(user.name+' iterated'); 
} 

Почему я получаю:

undefined iterated 
undefined iterated 

Что я хочу получить это:

something iterated 
something iterated 
+0

Кроме того, если я пропустить массив и просто выполните непосредственно: для (пользователь var в клиентах) Затем я получаю «неопределенный итерированный» около 50 раз. – user2105624

+0

Я думаю, вы должны использовать 'of' вместо' in'? – david

+0

http://stackoverflow.com/questions/20069828/how-to-convert-set-to-array любой из этих способов работы? –

ответ

2
var Set = require("collections/set"); 

function User() { 
    this.name = 'something'; 
} 


var clients = new Set(); 

var a = new User(); 
var b = new User(); 
clients.add(a); 
clients.add(b); 


var arr = clients.toArray(); 
for (var i=0;i<arr.length;i++) { 
    console.log(arr[i].name+" iterated"); 
} 
//something iterated 
//something iterated 
+0

Это работает! спасибо – user2105624

+0

добро пожаловать в stackoverflow @ user2105624 – Sumeet

0

Вы должны использовать of вместо in в вашей цикл. in пересекает поля на объекте, поэтому вы получаете 50 строк с заданным объектом. of, с другой стороны, будет рассматривать цель как итератор и захватить его содержимое, как вы ожидали. Вот пример:

function User() { 
 
    this.name = 'something'; 
 
} 
 

 
var clients = new Set(); 
 

 
var a = new User(); 
 
var b = new User(); 
 
clients.add(a); 
 
clients.add(b); 
 

 
for (var user of clients) { 
 
    console.log(user.name+' iterated'); 
 
}

(я предполагаю, что ваша collections/set вещь достаточно умна, чтобы выставить символ итератора вещь, что делает его работу)

+0

Не похоже, что он достаточно умный, я получаю SyntaxError: Неожиданный идентификатор - В части "из". – user2105624

+0

Затем сделайте то, что опубликовал sumeet, это будет работать, если вы можете получить фактический массив. – david

 Смежные вопросы

  • Нет связанных вопросов^_^