2013-04-18 137 views
3

我遇到了,我还是设法解决问题,但老实说,我不明白这是如何工作。分配一个数组值的变量

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

除了从书本上一个伟大的在线资源是辉煌的MDN。 [** MDN - 学习JavaScript **](https://developer.mozilla.org/en/learn/javascript),[** MDN - JavaScript的文档索引**](https://developer.mozilla.org/ en/learn/javascript)在那里你可以找到从数组到if语句到闭包的任何文档和代码示例。从最简单到最复杂。希望这个资源可以帮助你实现你的目标。 – Nope

回答

2
if(array[i] > largest) { 
      largest = array[i]; 
     } 

array[i]3largest0然后如果条件通行证和

largest = array[i]; 

分配值从右到左 现在largest值为3

所以下一个周期array[i]6所以下一个6 > 3是真的,它会再次改变largest to 6

喜欢它会给你最大的号码。

+0

我认为有些事情只是点击了我的头,我现在开始理解如何转让WORKS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!谢谢你,谢谢你,谢谢你。赋值通过从右侧到左侧分配值来工作?这是每种任务的情况吗? a = b是否一样; – mrageh

+0

是分配的工作原理是=该操作 – NPKR

+0

所以,当我使用=签署其称​​为分配和值从右侧到左侧分配。如果我错了,请纠正我。 – mrageh

1

此代码试图值的数组来计算的最大值..

array[i] = largest; 

会修改这是不希望输入自己......你需要找到的最大值从给定的输入..而不是修改给定的输入位置一些最大的价值。

这就是为什么

largest = array[i] 

是正确的。

2

我想你弄错赋值语句与数学平等声明编程。

Assignment vs Equality

在代码中,当你说最大=阵列[I]要指定给变量“最大”在阵列的第i个位置的元素的值。注意这里数组并没有改变它在这个赋值中的任何值。

在另一方面,阵列[I] =最大会尝试分配给第i个位置的阵列上的变量“最大”的当前值。

+0

woooooooow很快就是谢谢你,但也许我在这里很愚蠢,但我仍然不明白。我知道任务与数学的平等不一样。真的很沮丧,也许我需要睡上一觉?我甚至不知道要问澄清,我不明白:( – mrageh

+0

我看你有这得益于@NPKR答案是什么;!) – EduG

+0

是的,我也感谢您的输入 – mrageh

1

当分配一个值到一个变量,该变量必须是在赋值运算符左侧(等号“=”)。

这样对左边的变量:

largest = array[i]; 

它把数组[我]值到最大变量,所以它的工作原理。

这种方式是倒退:

array[i] = largest; 

它把最大值到阵列[I]元素,你的阵列一堆在它的零结束。

+0

真的谢谢信息 – mrageh

相关问题