Some explaination is needed

Hello all
I am a little bit confused about if (y[i].indexOf(x) === -1), why should it be -1 ?
Best regards

Your code so far


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

// 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 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.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

The method indexOf returns index number of passed in parameter.

If the array doesn’t find passed in parameter, .indexOf returns -1. In other words, it means the array didn’t find passed in value.

1 Like

Thanks for reply dear shimphillip

if (y[i].indexOf(x) === -1){ newY.push(y[i]);}

Doesn’t it mean _if there is no y ith index == to x _ push y[i] into newY?
if there is so don’t push! in other words try not to repeat x two times.
…?

Basically your code above is saying

if you don’t find a value in an array, push that array into newY.

1 Like

Thanks a bunch
got it