Это потому, что метод filter
возвращает новый массив, и вы переопределяете его новым значением.
Как было сказано ранее, он создает новый массив, это означает, что переменная ref
не ссылается на старый массив больше. Это относится к новому массиву, созданному методом filter
.
Вы можете просто использовать для, пока или сделать, пока l oop, чтобы решить эту проблему.
Я надеюсь, что это поможет вы. Вы можете найти рабочий пример здесь:
let obj = {
innerObj1: {
arr: [2,3,4,5,6]
}
}
var ref = obj.innerObj1.arr;
console.log(ref);
// output [2,3,4,5,6]
for(let index=0; index < ref.length; index++) {
if(ref[index] % 2 === 0) {
ref[index] = ref[index]
} else{
ref.splice(index,1);
}
}
console.log(ref);
// output [2,4,6]
//Original obj
console.log(obj.innerObj1.arr)
// output [2,3,4,5,6]