sort函数是对错误的数组进行排序?

时间:2018-03-22 04:01:35

标签: javascript arrays

我在使用这个JS代码时遇到了一些问题。

代码应该生成一个随机电压数组(在伏特数组中),然后创建一个新数组(sortedVolts数组),其中伏特按从最低到最高的顺序排序。

问题是我的代码不仅要对sortedVolts数组进行排序,还要对volts数组进行排序,该数组应保持未排序。为什么会这样?

var volts = [];
var sortedVolts;

for (var count = 0; count < 3; count++) {
    volts.push(Math.floor(Math.random() * 100));
}
sortedVolts = volts;
sortedVolts.sort();
console.log('UNSORTED', volts);
console.log('SORTED', sortedVolts);

3 个答案:

答案 0 :(得分:1)

您正在为// ERROR : Nil cannot be assigned to type 'Test' 变量分配volts。您应该使用sortedVolts复制数组。在this question回答。

答案 1 :(得分:1)

The database returned no natively generated identity value. 不会创建数组的副本,它会创建另一个引用相同数组的变量。

要使其正常工作,您需要至少制作一份sortedVolts = volts的浅表副本,这可以通过volts

完成

&#13;
&#13;
sortedVolts = [ ...volts ]
&#13;
&#13;
&#13;

答案 2 :(得分:0)

由于JavaScript使用分享评估策略,因此发生了这种情况。 两个变量都指向内存中的相同地址。 创建伏特数组的副本,然后使用Array.sort

对其进行排序