Hey guys, I know there’s an easier/better way to solve this challenge with push(), but I’m curious as to why this particular code is not working (it does on all but one, where it somehow manages to leave some of the nested array’s elements behind). My best guesses lead me to believe it’s because I’m mutating arr’s length during the loop, but I would think this would cause it to skip other ones as well. I’m not sure what caused it to splice part of the nested array and not the other part, when it should spice the entire thing.
Your code so far
function filteredArray(arr, elem) {
let newArr = [];
// change code below this line
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf(elem) >= 0) {
arr.splice(i, 1);
console.clear();
console.log(arr);
}
}
newArr = [...arr];
console.log(newArr);
// change code above this line
return newArr;
}
// change code here to test different cases:
console.log(filteredArray([[3, 2, 3], [1, 6, 3], [3, 13, 26], [19, 3, 9]], 3));
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-all-an-arrays-items-using-for-loops