2016-09-21 2 views
1

я, скорее всего, с видом на что-то что-то довольно основные здесь, но у меня действительно трудное время выяснить, почему я получаю следующее поведение, при поиске определенного массива в другой массив:indexOf массив в массиве?

myArray.push(["Name", 1, 2]); 
myArray.indexOf(["Name", 1, 2]); 

Возвращает -1. Почему я не могу найти массив, который я только что нажал?

+0

Потому что каждый раз, когда вы используете '[' ... ']' вы создаете массив новым вариантом. 'indexOf' сравнивает ссылки. – Xufox

+0

Это имеет смысл. Можете ли вы дать мне хедз-ап о том, как добиться поведения, которое вы ищете? – user2806026

+1

Возможный дубликат [массива массивов javascript массивов] (http://stackoverflow.com/questions/6315180/javascript-search-array-of-arrays) – Xufox

ответ

1

Попробуйте это:

var myArray = []; 
var anotherArray = ["Name", 1, 2]; 

myArray.push(anotherArray); 
myArray.indexOf(anotherArray); // returns 0 
1

Попробуйте что-то вроде этого:

var checkArray = ["Name", 1, 2] 
var myArray = []; 

myArray.push(checkArray); 
myArray.indexOf(checkArray);