I tried this and it didn’t work. I also looked for documentation for this but couldn’t find any. Is there any way to locate the array and retrieve its index without using a loop?
let arr = [['a'], ['b']]
console.log(arr.indexOf(['a']))
I tried this and it didn’t work. I also looked for documentation for this but couldn’t find any. Is there any way to locate the array and retrieve its index without using a loop?
let arr = [['a'], ['b']]
console.log(arr.indexOf(['a']))
Would I still use indexOf()
for this?
It is related to this:
Your original code is asking if any of the array elements are stored in the same place as the array you created for the argument of indexOf, and none of those memory addresses will match up.
I abandoned the logic from that post, I’m trying something else now xD
It is the same logical problem though. You can’t dodge the need to understand array/object references. The issue will pop up in any moderately complex work with arrays or objects.
let x = [['a'], ['a']] // array x contains two different arrays
x.indexOf(['a']) // here goes another one array ['a'] and it doesn't equal to arrays in x
let a = ['a']
let b = a // a and b holds ref to the same array.
// if you change the arr through b
b[0] = 'k'
// you'll get the change through a
console.log(a[0]) // 'k'
I think I might have dodged it by using join()
and comparing it that way. I’m doing the Interview Prep, I’ll post my detailed solution here. It technically does the trick but still fails 2 of the requirements simply because of how cumbersome it is I guess. It does return the correct values though.
This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.