为什么在javascript中使用for-in循环时字符串不匹配
为什么条件永远不能满足?它从来不会产生一个弹出窗口,在我的理解中应该显示x是列表的第三个元素为什么在javascript中使用for-in循环时字符串不匹配,javascript,arrays,string,for-loop,string-matching,Javascript,Arrays,String,For Loop,String Matching,为什么条件永远不能满足?它从来不会产生一个弹出窗口,在我的理解中应该显示x是列表的第三个元素 var list = []; list[0] = "ahhah"; list[1] = "abcdef"; list[2] = "123"; for (var x in list) { if (x == "123") alert("HA"); } 在中使用“for.”迭代数组时,将以字符串格式获取索引。您应该使用普通循环,如下所示 for (var i = 0; i < li
var list = [];
list[0] = "ahhah";
list[1] = "abcdef";
list[2] = "123";
for (var x in list) {
if (x == "123")
alert("HA");
}
在中使用“
for.”迭代数组时,将以字符串格式获取索引。您应该使用普通循环,如下所示
for (var i = 0; i < list.length; i += 1) {
if (list[i] == "123")
alert("HA");
}
for(变量i=0;i
引用
for..in
不应用于迭代索引顺序很重要的数组数组索引只是具有整数名称的可枚举属性,在其他方面与常规对象属性相同。无法保证for…in将以任何特定顺序返回索引,并返回所有可枚举属性,包括具有非整数名称的属性和继承的属性
因为迭代的顺序依赖于实现,所以在数组上迭代可能不会以一致的顺序访问元素。因此,在访问顺序非常重要的数组时,最好使用带有数字索引的for循环(或Array.forEach或非标准for…of循环)
在
中使用“for.”迭代数组时,将以字符串格式获取索引。您应该使用普通循环,如下所示
for (var i = 0; i < list.length; i += 1) {
if (list[i] == "123")
alert("HA");
}
for(变量i=0;i
引用
for..in
不应用于迭代索引顺序很重要的数组数组索引只是具有整数名称的可枚举属性,在其他方面与常规对象属性相同。无法保证for…in将以任何特定顺序返回索引,并返回所有可枚举属性,包括具有非整数名称的属性和继承的属性
因为迭代的顺序依赖于实现,所以在数组上迭代可能不会以一致的顺序访问元素。因此,在访问顺序非常重要的数组时,最好使用带有数字索引的for循环(或Array.forEach或非标准for…of循环)
将使用键填充x
,而不是值。它通常用于对象,而不是数组
for (var x in list) {
//x = 0 / 1 / 2
if (list[x] == "123")
alert("HA");
将使用键填充x
,而不是值。它通常用于对象,而不是数组
for (var x in list) {
//x = 0 / 1 / 2
if (list[x] == "123")
alert("HA");
或for(var i=0,listLength=list.length;i
保存对list.length
的常量重新计算;或for(var i=0,listLength=list.length;i
保存对list.length
的常量重新计算。