Can someone explain what -1 represents here?

Does it mean that it will work for any positive number? Why will ‘false’ not work in it’s place?

Thanks for the help.


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])
}
}
// 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 (X11; CrOS armv7l 12105.100.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.144 Safari/537.36.

Challenge: Iterate Through All an Array’s Items Using For Loops

Link to the challenge:
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-all-an-arrays-items-using-for-loops

For JavaScript prototype functions that return a number, such as indexOf(), returning -1 just means that indexOf() couldn’t find the value used. In the case of the code you’ve shared, the function is indexOf(elem), and elem equals 3 in the call you’ve used, so all a -1 would mean is that the item in arr[i] doesn’t have a 3 in it.

Hope this helps!

I think that makes sense. Thanks for the help.

Would there be another way to change the ‘== -1’ into something else?

Just wondering. Thanks.

I don’t think there’s a way to do that without editing the prototype, which isn’t recommended.

if you are not interested in the index in case the element is present you can use includes, this method returns true/false