Javascript 函数shift()不';在回路内部不工作

Javascript 函数shift()不';在回路内部不工作,javascript,arrays,Javascript,Arrays,我试图在for循环中操作一个数组,我想在数组末尾添加一个项,并删除数组开头的一个元素,如下所示: var internal = new Array(); for(var i = 0; i < 1000; i++) { internal[i] = Math.floor(Math.random() * 37); internal.shift(); console.log(internal.length); } var internal=new Array(); 对

我试图在for循环中操作一个数组,我想在数组末尾添加一个项,并删除数组开头的一个元素,如下所示:

var internal = new Array();

for(var i = 0; i < 1000; i++) {
    internal[i] = Math.floor(Math.random() * 37);

    internal.shift();
    console.log(internal.length);
}
var internal=new Array();
对于(变量i=0;i<1000;i++){
内部[i]=数学地板(数学随机()*37);
内部移位();
console.log(内部长度);
}
问题是看起来shift()在循环中不起作用,实际上,没有从数组中删除任何元素

有解决办法吗


此处

因为您使用的是硬编码索引,请尝试

var internal = new Array();

for(var i = 0; i < 1000; i++) {
    internal.push(Math.floor(Math.random() * 37));

    internal.shift();
    console.log(internal.length);
}

将打印
51
而不是
1

,因为您使用的是硬编码索引,请尝试

var internal = new Array();

for(var i = 0; i < 1000; i++) {
    internal.push(Math.floor(Math.random() * 37));

    internal.shift();
    console.log(internal.length);
}

将打印
51
而不是
1

,因为您使用的是硬编码索引,请尝试

var internal = new Array();

for(var i = 0; i < 1000; i++) {
    internal.push(Math.floor(Math.random() * 37));

    internal.shift();
    console.log(internal.length);
}

将打印
51
而不是
1

,因为您使用的是硬编码索引,请尝试

var internal = new Array();

for(var i = 0; i < 1000; i++) {
    internal.push(Math.floor(Math.random() * 37));

    internal.shift();
    console.log(internal.length);
}

将打印
51
而不是
1

它每次减少一个,但通过使用数组索引访问它,您每次都在增加它。而不是

internal[i] = Math.floor(Math.random() * 37);
使用

比如说,

var internal = [];
internal[3] = "thefourtheye";
console.log(internal);
输出

[ , , , 'thefourtheye' ]
它为前三个元素留出空间,并在指定的索引处添加元素。因此,它将保持阵列的增长


注意:使用
[]
创建一个新数组,而不是
新建数组()

它每次减少一个,但通过使用数组索引访问它,您每次都在增加它。而不是

internal[i] = Math.floor(Math.random() * 37);
使用

比如说,

var internal = [];
internal[3] = "thefourtheye";
console.log(internal);
输出

[ , , , 'thefourtheye' ]
它为前三个元素留出空间,并在指定的索引处添加元素。因此,它将保持阵列的增长


注意:使用
[]
创建一个新数组,而不是
新建数组()

它每次减少一个,但通过使用数组索引访问它,您每次都在增加它。而不是

internal[i] = Math.floor(Math.random() * 37);
使用

比如说,

var internal = [];
internal[3] = "thefourtheye";
console.log(internal);
输出

[ , , , 'thefourtheye' ]
它为前三个元素留出空间,并在指定的索引处添加元素。因此,它将保持阵列的增长


注意:使用
[]
创建一个新数组,而不是
新建数组()

它每次减少一个,但通过使用数组索引访问它,您每次都在增加它。而不是

internal[i] = Math.floor(Math.random() * 37);
使用

比如说,

var internal = [];
internal[3] = "thefourtheye";
console.log(internal);
输出

[ , , , 'thefourtheye' ]
它为前三个元素留出空间,并在指定的索引处添加元素。因此,它将保持阵列的增长

注意:使用
[]
创建新数组,而不是
新建数组()