Javascript 填充双数组逻辑错误?
在java脚本中实现一些分页算法以供实践。 我得到了想要推进多维数组(double)的数组的正确输出,但它只推进最终版本。Im打印到控制台,这就是我得到的,它应该填充所有不同版本的帧。这是一个奇怪的JS数组还是什么? //变量声明 var frameNumber=3; var refStringSize=6Javascript 填充双数组逻辑错误?,javascript,jquery,arrays,functional-programming,Javascript,Jquery,Arrays,Functional Programming,在java脚本中实现一些分页算法以供实践。 我得到了想要推进多维数组(double)的数组的正确输出,但它只推进最终版本。Im打印到控制台,这就是我得到的,它应该填充所有不同版本的帧。这是一个奇怪的JS数组还是什么? //变量声明 var frameNumber=3; var refStringSize=6 var faultCount=0; var refString = []; var _frames=[]; var arrayOfDisplayArrays=[]; console.log
var faultCount=0;
var refString = [];
var _frames=[];
var arrayOfDisplayArrays=[];
console.log("refString: "+refString);
//didnt include other functions
//"driver"
for(i=refStringSize;i>0;i--){
var x = refString.shift();
//if frames are not filled
if(_frames.length!=frameNumber){
if(!_includes(_frames,x)){
_frames.push({'x':x,'checked':false});
faultCount++;
console.log('----')
console.log(_frames);
arrayOfDisplayArrays.push(_frames);
}
//if frames are filled
}else{
if(!_includes(_frames,x)){
var index=getLRUIndex(_frames,refD);
_frames[index]={'x':x,'checked':false};
faultCount++;
console.log('----')
console.log(_frames);
arrayOfDisplayArrays.push(_frames);
}
}
refD.push(x);
}
console.log(arrayOfDisplayArrays);
这是我的输出(忽略选中):
refString: 2,9,4,5,8,9
----
[ { x: 2, checked: false } ]
----
[ { x: 2, checked: false }, { x: 9, checked: false } ]
----
[ { x: 2, checked: false },
{ x: 9, checked: false },
{ x: 4, checked: false } ]
----
[ { x: 5, checked: false },
{ x: 9, checked: false },
{ x: 4, checked: false } ]
----
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 4, checked: false } ]
----
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ]
---------array of arrays----
[ [ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ],
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ],
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ],
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ],
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ],
[ { x: 5, checked: false },
{ x: 8, checked: false },
{ x: 9, checked: false } ] ]