Javascript 'Array' 和 'Loop' “variable[i]”如何成为条件
Javascript ' Array ' and ' Loop ' how can " variable[i] " be a CONDITION
在此脚本中,cars[i] 用作条件程序如何识别天气条件是 true
或 false
并且程序在输入第 4 个变量后正确停止在数组中 ?
所以问题是:程序如何识别条件以及 cars[i] 如何成为条件。
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
for (;cars[i];) {
text += cars[i] + "<br>";
i++;
}
这里有两件事在起作用:
在 JavaScript 中,当您使用值作为条件时,它会被强制转换为布尔值。值 0
、""
、NaN
、null
和 undefined
强制转换为 false
(它们加上 false
,是称为 "falsey" 值);所有其他 ("truthy values") 强制为 true
.
如果您尝试访问数组中不存在的条目,您将返回 undefined
。
所以当i
到达4
时,cars[i]
是undefined
,强制转换为false
,循环停止。但是依赖它很可能会设置一个陷阱,因为如果 cars
中有任何条目强制转换为 false
(那个例子中没有,但是......),循环将在处理整个数组之前停止。
旁注:for (; condition ;)
是一种非常奇怪的写法 while (condition)
。如果您没有初始化、测试和更新部分,for
可能不是您想要的控制结构。你说过你试图理解这段代码,所以我猜你没有写它;只是要注意质量可能不会那么高。
这是编写该循环的 "normal" 方法:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i;
var text = "";
for (i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
或者更现代的东西:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "";
cars.forEach(function(car) {
text += car + "<br>";
});
或者更高级的东西,但可能会让初学者感到厌烦:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = cars.reduce(function(acc, car) {
return acc + car + "<br>";
}, "");
在此脚本中,cars[i] 用作条件程序如何识别天气条件是 true
或 false
并且程序在输入第 4 个变量后正确停止在数组中 ?
所以问题是:程序如何识别条件以及 cars[i] 如何成为条件。
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
for (;cars[i];) {
text += cars[i] + "<br>";
i++;
}
这里有两件事在起作用:
在 JavaScript 中,当您使用值作为条件时,它会被强制转换为布尔值。值
0
、""
、NaN
、null
和undefined
强制转换为false
(它们加上false
,是称为 "falsey" 值);所有其他 ("truthy values") 强制为true
.如果您尝试访问数组中不存在的条目,您将返回
undefined
。
所以当i
到达4
时,cars[i]
是undefined
,强制转换为false
,循环停止。但是依赖它很可能会设置一个陷阱,因为如果 cars
中有任何条目强制转换为 false
(那个例子中没有,但是......),循环将在处理整个数组之前停止。
旁注:for (; condition ;)
是一种非常奇怪的写法 while (condition)
。如果您没有初始化、测试和更新部分,for
可能不是您想要的控制结构。你说过你试图理解这段代码,所以我猜你没有写它;只是要注意质量可能不会那么高。
这是编写该循环的 "normal" 方法:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i;
var text = "";
for (i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
或者更现代的东西:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = "";
cars.forEach(function(car) {
text += car + "<br>";
});
或者更高级的东西,但可能会让初学者感到厌烦:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var text = cars.reduce(function(acc, car) {
return acc + car + "<br>";
}, "");