我创建了一个函数来检查数组的元素是否可被下一项整除。如果不是,则应从数组中删除下一项。
我创建了一个由两个数组组成的测试数组。当我遍历它们并 console.log 它们时,它们会按预期返回。
当我在 for 循环而不是 console.log 中调用我的函数 (deleteItem) 时,它只返回第一个数组元素的结果,而不是第二个。我真的很困惑,不明白这一点。谁能给我一个提示我做错了什么?
先感谢您!
let testArray = [[240,12, 10, 8,23],[240,12, 10, 8,24]];
function deleteItem(array) {
if(array.length<=1){
return array;
}
else{
for(i=0; i<array.length-1;i++) {
let changed = true;
while(changed){
if(array[i]%array[i+1]!=0) {
array.splice(i+1,1);
i=0;
break;
}
else {changed=false};
}
}
}
return array;
}
如果我只控制台日志,它会按预期返回两个元素:
for(i=0;i<testArray.length;i++){
console.log( testArray[i]);
//console.log(deleteItem( testArray[i]));
}
returns:
[240, 12, 10, 8, 23]
[240, 12, 10, 8, 24]
如果我使用我的函数,它只会调用第一个数组元素
for(i=0;i<testArray.length;i++){
console.log( testArray[i]);
console.log(deleteItem( testArray[i]));
}
returns:
[240, 12, 10, 8, 23]
[240, 12]
I expect:
[240, 12, 10, 8, 23]
[240, 12]
[240, 12, 10, 8, 24]
[240, 12]
开满天机
相关分类