我遇到了一个问题,我确实设法解决了这个问题,但老实说我不明白这是怎么回事。
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
//My code
for (var i = 0; i < array.length; i++) {
if (array[i] > largest) {
largest = array[i];
}
}
console.log(largest);
我的数组如何在if语句中为我的变量赋值?
为什么这个版本不起作用?
array[i] = largest;
我对编程非常陌生,我相信理解像这样小的基本事物可以帮助许多初学者成为称职的程序员。
答案 0 :(得分:2)
if(array[i] > largest) {
largest = array[i];
}
array[i]
为3
,largest
为0
,如果条件通过且
largest = array[i];
从右到左分配值
现在largest
值为3
。
因此,下一个周期array[i]
为6
,因此下一个6 > 3
为真,它将再次更改largest to 6
。
喜欢它会给你最多的数字。
答案 1 :(得分:2)
我认为你在使用数学中的等式语句编程时误认为赋值语句。
在你的代码中,当你说max = array [i]时,你要为变量'maximum'分配数组第i个位置的元素值。请注意,数组不会更改此赋值中的任何值。
另一方面,array [i] = maximum会尝试将数组中的第i个位置分配给变量'maximum'的当前值。
答案 2 :(得分:1)
此代码试图计算值数组中的最大值。
做
array[i] = largest;
会修改输入本身,这是不受欢迎的...您需要从给定输入中找到最大值..而不是将给定输入位置修改为某个最大值。
这就是为什么
largest = array[i]
是对的。
答案 3 :(得分:1)
为变量赋值时,变量必须位于赋值运算符的左侧(等号“=”)。
这种方式左边是变量:
largest = array[i];
它将 array [i] 值放入最大变量中,因此它可以正常工作。
这种方式是倒退的:
array[i] = largest;
它将最大的值放入 array [i] 元素中,并且您的数组最终会有一堆零。
答案 4 :(得分:0)
我知道这是一个老话题,但是今天我遇到了这个问题,想帮助其他开发人员直接从Kyle Simpson那里获得适当的知识来源。
操作员分配有自己的工作方式。它计算右侧“ =”的语句,以便稍后将其分配到左侧。了解其工作原理非常重要。
示例:
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
//My code
for (var i = 0; i < array.length; i++) {
if (array[i] > largest) {
largest = array[i];
}
}
console.log(largest);
在这里largest = array[i];
JS,计算 右和左对齐
因此,请尽情玩乐并玩耍。