indexOf in if loop

Tell us what’s happening:
in the if loop

if(arr[i].indexOf(elem)==-1)

can you explain the part how indexOf(elem)==-1 works
i am not getting it

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)==-1){
        newArr.push(arr[i]);
      }
    }
  return newArr;
  }

  // change code above this line
  

// 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) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 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

indexOf tells you at what index a value is in an array. If the value isn’t in the array, it returns -1

> [1,2,3].indexOf(1)
0

1 is at index 0

> [1,2,3].indexOf(4)
-1

4 is not in the array

Edit: your code –

LET "newArr" be a new empty array.
# "arr" is a collection of arrays, so:
FOR every "sub-array" in "arr":
  IF "sub-array" DOES NOT include "elem":
    PUSH "sub-array" to "newArr".
  ENDIF
ENDFOR

RETURN "newArr"

Please don’t post full working solutions, if you need an explenation about something on the guide, link the article and indicate wich solution you are referring to (if there is more than one).

1 Like