我找到了这个如何改组数组的例子,但是我还没见过javascript签名多个值的变量。我尝试在控制台中执行此操作,但它会产生错误,这不是分配多个值,而是做其他事情吗?该功能似乎工作正常,所以我不确定如何解释这一点。
for(var i = 0; i < newInv.length; i++) {
while(newInv[i][1] != -1) {
newInv[i][0] += newInv[i+1][0];
newInv.push([newInv[i][0], newInv[i][1]]);
newInv.splice(i,2);
}
}
答案 0 :(得分:0)
什么???,它只有一个变量
不,它宣布了三个变量:
i
,初始化为this.length
j
,它没有初始化temp
,它没有初始化......就像代码一样:
var i = this.length;
var j;
var temp;
var i = this.length, j, temp;
与您的let num=3,4,5;
(var
与let
除外)之间的区别在于4
和5
不是&#39 ; t有效的标识符名称,因此您无法使用这些名称声明变量。
有关MDN的更多信息:var
答案 1 :(得分:0)
var num=[3,4,5];
var i = this.length, j, temp;
此行表示声明变量,其中第一个为已分配的值,而其他则不是Array.prototype.shuffle = function()
脚本的第一行意味着此代码分配给一个类(原型)数组,所以如果你想运行它,你只需要从变量num.shuffle()
中调用它正确的工作示例:
var num=[3,4,5];
Array.prototype.shuffle = function() {
var i = this.length, j, temp;
if ( i == 0 ) return this;
while ( --i ) {
j = Math.floor( Math.random() * ( i + 1 ) );
temp = this[i];
this[i] = this[j];
this[j] = temp;
}
return this;
}
num.shuffle()