如果我使用错误的术语,我是新来的编码所以道歉(请纠正我)。我正在进行以下编码挑战:给定一个具有多个值的数组,编写一个返回一个新数组的函数,该数组仅包含原始数组的最大值,最小值和平均值。
这是我第一次尝试时提出的代码: First attempt
最终我通过反复试验发现问题是我的arrnew变量的位置。我还修复了平均表达式,正确的算法是:Correct algorithm
我认为,因为max,min和avg正在改变(对于这个有更好的术语吗?),var arrnew会获得这些新值,但显然情况并非如此。我想我的问题是行顺序何时重要?或者更具体地说,是否有任何简单的规则或原则我应该知道,以帮助我更好地理解命令行编码(我不知道这是否称为命令行编码)。
由于
答案 0 :(得分:1)
执行此操作时:
var arrnew = [max, min, avg];
这会将max
,min
,avg
的内容副本放入数组中。对max
,min
和avg
包含的内容的未来更改不会以任何方式影响数组。
所以,如果你这样做;
var max = 3, min = 1, avg = 2;
var arrnew = [max, min, avg]; // 3, 1, 2
max = 5;
console.log(arrnew); // 3, 1, 2
请注意,arrnew
,max
或min
包含的后续更改不会影响avg
的内容。这就是Javascript(以及大多数语言的工作方式)。
答案 1 :(得分:0)
由于编译器,编译器总是从上到下,所以总是尝试以有序的方式构造代码。