Basic Data Structures - Iterate Through All an Array's Items Using For Loops

Tell us what’s happening:
Describe your issue in detail here.

Hi,

I was wondering if someone could help me understand the solution code. If the element is not found in the array, why would we push the array into a new array?

My understanding of the problem was that if the element was found, we would remove it. I just don’t understand how the solution code accomplishes this. I’ve researched it as best I can and I just don’t get it. Any insight would be appreciated.
Your code so far

function filteredArray(arr, elem) {
  let newArr = [];
  // Only change code below this line
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].indexOf(elem) == -1) {
      newArr.push(arr[i]);
    }
    
  } 
  // Only change code above this line
  return newArr;
  
}

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 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.37

Challenge: Basic Data Structures - Iterate Through All an Array’s Items Using For Loops

Link to the challenge:

Thank you RandellDawson. This was my first time asking a question, so I’m not sure I worded it correctly, but your answer still helped. I think where I was confused was… in the arr being passed to the function, the newArr came back an empty array. In this particular example, I wasn’t able to understand as clearly what was happening. I was too focused on the original arr being passed.

As I understand it now, the variable newArr was initiated as an empty array and no nested array was pushed to it because, as the nested arrays were iterated over, all contained the elem that was passed as an argument into the function. So, there was nothing to pass. That was the missing piece. I wasn’t seeing the connection between the arr and newArr that was happening. But I see it much better now.

Thanks a lot!

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.