我只是用控制台定义的变量temp来记录阵列列表,如下所示。但是输出仅显示数组中的第三个元素。不列出每个元素的原因是什么? 因为当我简单地控制台日志arr [i]时,它显示了数组中的所有3个元素,但没有显示可变的温度。
这是我的代码
function largestFour(arr){
var max = [];
for ( var i = 0; i < arr.length; i++)
var temp = arr[i];
console.log(temp);
}
largestFour([[4,5,1,3],[13,27,16,5],[10,19,4,9]]);
output
(4)[10,19,4,9]
答案 0 :(得分:2)
必须定义{}
块,以便for
知道它是块执行的开始和结束。
function largestFour(arr) {
var max = [];
for (var i = 0; i < arr.length; i++) {
var temp = arr[i];
console.log(temp);
}
}
largestFour([
[4, 5, 1, 3],
[13, 27, 16, 5],
[10, 19, 4, 9]
]);
已编辑
代码中实际发生的事情
function largestFour(arr){
var max = [];
for ( var i = 0; i < arr.length; i++)
var temp = arr[i];
console.log(temp);
}
是for
循环,当您不定义大括号{}
或执行块时,他只是运行(且仅) for
循环下面的下一行。
答案 1 :(得分:0)
您错过了{}
代码如下:
function largestFour(arr){
var max = [];
for ( var i = 0; i < arr.length; i++){
var temp = arr[i];
console.log(temp);
}
}
答案 2 :(得分:0)
我试图重构您的代码,并且可以正常工作
function largestFour(arr){
for (var i = 0; i < arr.length; i++) {
var temp = arr[i];
console.log(temp);
}
}
largestFour([[4,5,1,3], [13,27,16,5], [10,19,4,9]])
答案 3 :(得分:0)
for ( var i = 0; i < arr.length; i++)
等效于for ( var i = 0; i < arr.length; i++);
或for ( var i = 0; i < arr.length; i++){}
。
还使用var i
声明for
循环初始化程序,使它们具有与循环本身相同的作用域,即函数largetstFour()
。
因此,可以使用括号{}
和let
代替var
进行for循环初始化声明。
function largestFour(arr){
var max = [];
for ( let i = 0; i < arr.length; i++)
{
var temp = arr[i];
console.log(temp);
}
}
答案 4 :(得分:0)
原因是您不知道 if 语句的上下文。 if 语句仅包装不带花括号{
的子句。因此,您的代码console.log
仅执行了一次。
```
const largestFour = (arr) => {
arr.forEach(item => console.log(item))
}
largestFour([[4, 5, 1, 3], [13, 27, 16, 5], [10, 19, 4, 9]])
```