Я создал функцию для проверки массива, делится ли элемент массива на следующий элемент. Если нет, то должен удалить следующий элемент из массива.
Я создал тестовый массив, состоящий из двух массивов. Когда я l oop поверх них и console.log, они возвращаются, как ожидалось.
Когда я вызываю свою функцию (deleteItem) в for l oop вместо console.log, она просто возвращает результат первого элемента массива, а не второго. Я очень запутался и не понимаю этого. Может ли кто-нибудь подсказать, что я делаю неправильно?
Заранее спасибо!
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]