阿洛
我正在做我的一个小项目,其中一部分涉及采用已经创建的二维数组并将其随机化。
所以我有一些看起来像这样的东西:
foo = [[1,2],[3,4],[5,6],[7,8]];
randomizeFoo = function(){
var randomizedFoo = [];
newFoo = foo;
for(i = 0; i < newFoo.length; i++){
count = Math.random() * newFoo.length;
randomizedFoo.push(newFoo.slice(count, count + 1));
}
return randomizedFoo;
};
这确实随机化了数组,但我最终得到了这样的结果:
randomizedFoo = [[[7,8]],[[1,2]],[[5,6]],[[3,4]]]
我漂亮的 2D 阵列现在是一个 3D 阵列,其中最低级别的阵列现在在一个额外的级别下进行了毛刺。我意识到这并不是什么大不了的事,我的其余代码只需要补偿,但它让我烦恼有两个原因:
- 这是额外的复杂性,这从来都不是好事。
- 我不喜欢我的代码在我不知道原因的情况下做事。
有人对它为什么这样做有任何想法吗?我放了一个二维数组,我想要一个二维数组。