对于在javascript中表现异常的循环

对于在javascript中表现异常的循环,javascript,for-in-loop,Javascript,For In Loop,这个输出 var friends=['2','3']; console.log(friends); var rooms=[]; for(var friend in friends){ var room = 'userid'+friend+'friends'; console.log(room); rooms.push(room); } console.log(rooms); 3完全被忽略,它在my node.js服务器上的行为更为奇怪friend这里是数组的索引,而不是索引处的值 [

这个输出

var friends=['2','3'];
console.log(friends);
var rooms=[];
for(var friend in friends){
var room = 'userid'+friend+'friends';
console.log(room);
rooms.push(room);
}
console.log(rooms);    

3完全被忽略,它在my node.js服务器上的行为更为奇怪

friend
这里是数组的索引,而不是索引处的值

[ '2', '3' ]
 userid0friends
 userid1friends
 [ 'userid0friends', 'userid1friends' ]
另外,当在数组中循环时,我不建议使用..在循环中,您可以使用
array.prototype.map
或带有数组长度的普通for循环

数组映射示例: 普通for循环:
var-friends=['2','3'];
console.log(朋友);
var房间=[];
for(变量i=0,l=friends.length;i
friend
这是数组的索引,而不是索引处的值

[ '2', '3' ]
 userid0friends
 userid1friends
 [ 'userid0friends', 'userid1friends' ]
另外,当在数组中循环时,我不建议使用..在循环中,您可以使用
array.prototype.map
或带有数组长度的普通for循环

数组映射示例: 普通for循环:
var-friends=['2','3'];
console.log(朋友);
var房间=[];
for(变量i=0,l=friends.length;i
friend
这是数组的索引,而不是索引处的值

[ '2', '3' ]
 userid0friends
 userid1friends
 [ 'userid0friends', 'userid1friends' ]
另外,当在数组中循环时,我不建议使用..在循环中,您可以使用
array.prototype.map
或带有数组长度的普通for循环

数组映射示例: 普通for循环:
var-friends=['2','3'];
console.log(朋友);
var房间=[];
for(变量i=0,l=friends.length;i
friend
这是数组的索引,而不是索引处的值

[ '2', '3' ]
 userid0friends
 userid1friends
 [ 'userid0friends', 'userid1friends' ]
另外,当在数组中循环时,我不建议使用..在循环中,您可以使用
array.prototype.map
或带有数组长度的普通for循环

数组映射示例: 普通for循环:
var-friends=['2','3'];
console.log(朋友);
var房间=[];
for(变量i=0,l=friends.length;i
in结构中的
用于循环对象,
用于键入对象
是对象的属性名称,当用于数组时,
将是数组索引

您可以使用
.map
获得结果:

var friends=['2','3'];
console.log(friends);
var rooms=[];
for (var i = 0, l = friends.length; i < l; ++i) {
    var room = 'userid' + friends[i] + 'friends';
    console.log(room);
    rooms.push(room);
}
console.log(rooms);

in
结构的
用于循环对象,
用于键入对象
是对象的属性名,用于数组时,
将是数组索引

您可以使用
.map
获得结果:

var friends=['2','3'];
console.log(friends);
var rooms=[];
for (var i = 0, l = friends.length; i < l; ++i) {
    var room = 'userid' + friends[i] + 'friends';
    console.log(room);
    rooms.push(room);
}
console.log(rooms);

in
结构的
用于循环对象,
用于键入对象
是对象的属性名,用于数组时,
将是数组索引

您可以使用
.map
获得结果:

var friends=['2','3'];
console.log(friends);
var rooms=[];
for (var i = 0, l = friends.length; i < l; ++i) {
    var room = 'userid' + friends[i] + 'friends';
    console.log(room);
    rooms.push(room);
}
console.log(rooms);

in
结构的
用于循环对象,
用于键入对象
是对象的属性名,用于数组时,
将是数组索引

您可以使用
.map
获得结果:

var friends=['2','3'];
console.log(friends);
var rooms=[];
for (var i = 0, l = friends.length; i < l; ++i) {
    var room = 'userid' + friends[i] + 'friends';
    console.log(room);
    rooms.push(room);
}
console.log(rooms);

for in循环用于枚举对象。您正在尝试迭代数组。更好的迭代技术是常规for循环或
Array.forEach()
方法

在for-In循环中,变量包含键,而不是值。要获取值,请使用以下键:

var friends=['2','3'];

var rooms = friends.map(function(e) {
  return 'userid'+e+'friends';
});
但是,这再次枚举了一个对象,包括数组元素之外的任何属性。这意味着,如果任何代码将方法添加到
Array.prototype
,该方法也将被枚举。使用
.forEach()
更好:

for(var i in friends){
    var friend = friends[i];
    ...
}
更好的是,由于您正试图基于另一个数组的内容创建一个新数组,请使用
Array.map()
。这正是它的目的

friends.forEach(function (friend, i) {
    ...
});

for in循环用于枚举对象。您正在尝试迭代数组。更好的迭代技术是常规for循环或
Array.forEach()
方法

在for-In循环中,变量包含键,而不是值。要获取值,请使用以下键:

var friends=['2','3'];

var rooms = friends.map(function(e) {
  return 'userid'+e+'friends';
});
但是,这再次枚举了一个对象,包括数组元素之外的任何属性。这意味着,如果任何代码将方法添加到
Array.prototype
,该方法也将被枚举。使用
.forEach()
更好:

for(var i in friends){
    var friend = friends[i];
    ...
}
更好的是,由于您正试图基于另一个数组的内容创建一个新数组,请使用
Array.map()
。这正是它的目的

friends.forEach(function (friend, i) {
    ...
});

for in循环用于枚举对象。您正在尝试迭代数组。更好的迭代技术是常规for循环或
Array.forEach()
方法

在for-In循环中,变量包含键,而不是值。要获取值,请使用以下键:

var friends=['2','3'];

var rooms = friends.map(function(e) {
  return 'userid'+e+'friends';
});
但是,这再次枚举了一个对象,包括数组元素之外的任何属性。这意味着,如果任何代码将方法添加到
Array.prototype
,该方法也将被枚举。使用
.forEach()
更好:

for(var i in friends){
    var friend = friends[i];
    ...
}
更好的是,由于您正试图基于另一个数组的内容创建一个新数组,请使用
Array.map()
。这正是它的目的

friends.forEach(function (friend, i) {
    ...
});

for in循环用于枚举对象。您正在尝试迭代数组。更好的迭代技术是常规for循环或
Array.forEach()
方法

在for-In循环中,变量包含键,而不是值。要获取值,请使用以下键:

var friends=['2','3'];

var rooms = friends.map(function(e) {
  return 'userid'+e+'friends';
});
但是,这再次枚举了一个对象,包括数组元素之外的任何属性。这意味着如果任何代码向
数组添加了一个方法。