Iterate Through All an Array Items Using For Loops flyin

Tell us what’s happening:
I think I might be over complicating this using the nested loops. I’m only passing the last two checks.

Your code so far


function filteredArray(arr, elem) {
  let newArr = [];
  // change code below this line
  for (let i = 0; i < arr.length; i++) {
    let tempArr = arr[i];
    let chk = false;
    for (let j = 0; j < tempArr.length; j++) {
      if (tempArr[j] = elem) {
        chk = true;
      }
    }
    if (!chk) {
      newArr.push(arr[i])
    }
  }
  // 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.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0.

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

1 Like

You’re not over complicating it, but you’ve made a subtle error which is a pretty nasty one to happen to a beginner

You’ve done if(tempArr[j] = Elem)

You meant probably to do == or ===

A single = returns a value too, which is the value of the right hand side, which gets tested for truthiness so can be used in an if statement. It’s pretty much never what you want though

Ouch. Yes, that is not a good mistake to make. That did solve it for me though.

Thank you!!