gpt4 book ai didi

javascript - 交换数组数组中的元素的函数,在特定索引处返回未定义

转载 作者:行者123 更新时间:2023-11-28 03:06:29 24 4
gpt4 key购买 nike

我有一个数组的数组。我的数组名为 splitarr[Array2[],Array1[],Array0[],Array3[]...]。它从索引零到索引 2 的顺序不正确。所以我想交换 splitarr 它看起来更像这样 => splitarr[Array0[],Array1[],Array2[],数组3[]...]。但是我的代码似乎不起作用。当我尝试console.log我的数组时,应该切换元素的索引是未定义

function blabla(){
dividersecond = 2;
splitarrayindex = 0;
splitarr = [[],[],[],[]] //this is just pseudo code line, i already heave a functioning array
splitarr = ReorderArray(dividersecond,splitarrayindex,splitarr);
console.log(splitarr);
}

我有一个函数(这只是该函数的一部分,因为其他所有内容都太长),我尝试调用对数组重新排序的函数。

function ReorderArray(Count,Index,Array){

var originalIndex = Index;

for(Index; Index<Count;Index++){
var swapIndex = (Count-Index);
var temp = Array[Index];
Array[Index] = Array[swapIndex];
Array[swapIndex] = Array[temp];
}
return Array();
}

如果我这样做,我的控制台就会返回

[Array(8), undefined, undefined, Array(8), Array(8), Array(8)]

我也尝试过这个。

...
Array[Index] = Array[swapIndex];
Array[swapIndex] = Array[temp];
return Array();
}
}

但是控制台会返回类似这样的内容。

[Array(8), Array(4), undefined, Array(8), Array(8), Array(8)]

我可以想象出了什么问题,但我不太确定,也不知道如何解决这个问题。

当然,在循环中返回我的数组毫无意义,它只会结束循环,但这显示了每次循环运行期间实际发生的情况。

我已经调试了很多,但无法得出任何结论。到目前为止,每当调用循环时,Array[Index] 处的值似乎在其放置的位置处变为未定义。

所以第一个循环看起来像这样

[Array(8), Array(4), undefined, Array(8), Array(8), Array(8)]

和第二个循环一样

[Array(8), undefined, undefined, Array(8), Array(8), Array(8)] 

如果我能得到一些帮助,我会很高兴!

最佳答案

您已将数组正确存储在临时变量中

temp = Array[Index];

但是当您尝试恢复它时,您正在尝试从“数组”访问位置“temp”。这行不通。

Array[swapIndex] = Array[temp];

我相信您想要的是恢复存储在“temp”中的数组。像这样:

Array[swapIndex] = temp;

关于javascript - 交换数组数组中的元素的函数,在特定索引处返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60564708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com