gpt4 book ai didi

javascript - 在数组之间交换元素

转载 作者:行者123 更新时间:2023-11-29 10:42:47 24 4
gpt4 key购买 nike

我正在尝试从一个数组中删除项目,然后将其添加到另一个数组中。在某个阶段,我会将它们添加回原始数组。当我运行数组 10 次时,第 10 次没有返回 full array = 0 remove array = 100; 的预期结果。有人知道为什么会这样吗?

 var fullArr = [];//contains all items
var remArr = [];//contains removed items
var userAnswer = true;//this would be user input

populateArray();
runTenTimes();
//getting the answer right 10 times should result in fullArr.length = 0; remArr.length = 100;

function runTenTimes(){
for(var i=0;i<10;i++){
//console.log(i);
checkUserAnswer();
}
}
function populateArray(){
for(var i=0;i<100;i++){
fullArr.push(i);
}
}

function checkUserAnswer(){
if(userAnswer){//only if true
for(i=0;i<10;i++){//10 because I remove 10 at a time
removeShape(fullArr,fullArr[i],remArr);
}
}else{
// add elements from remove arr
// back into full array
}
console.log("full array : " + fullArr.length);
console.log("remove array : " + remArr.length);
console.log("------------------")
}

function removeShape(arr,item,rem){
for(var i = 0;i<arr.length; i++) {
if(arr[i] === item) {
rem.push(arr[i]);
arr.splice(i, 1);
}
}
}

http://jsfiddle.net/non_tech_guy/vy671jv4/

最佳答案

请使用此代码

var fullArr = [];//contains all items
var remArr = [];//contains removed items
var userAnswer = true;//this would be user input

populateArray();
runTenTimes();
//getting the answer right 10 times should result in fullArr.length = 0; remArr.length = 100;

function runTenTimes(){
for(var i=0;i<10;i++){
//console.log(i);
checkUserAnswer();
}
}
function populateArray(){
for(var i=0;i<100;i++){
fullArr.push(i);
}
}

function checkUserAnswer(){
if(userAnswer){//only if true
var arrCopy = fullArr.slice(0);
for(i=0;i<10;i++){//10 because I remove 10 at a time
removeShape(fullArr,arrCopy[i],remArr);
}
}else{
// add elements from remove arr
// back into full array
}
console.log("full array : " + fullArr.length);
console.log("remove array : " + remArr.length);
console.log("------------------")
}

function removeShape(arr,item,rem){
for(var i = 0;i<arr.length; i++) {
if(arr[i] === item) {
rem.push(arr[i]);
arr.splice(i, 1);
}
}
}

关于javascript - 在数组之间交换元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25564915/

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