Я храню элементы div в ассоциативном массиве, так что консоль представит мне такую информацию. Итак, console.log("вражеские пьесы") получает меня:
Object {left: null, top: div#silver.drag, right: null, bot: div#gold.drag}
Все идет нормально.
Затем я пытаюсь добавить это в массив или обработать позже.
pullablepieces [0] = соседи ['top'];
Это прекрасно работает. Console.log pullablepieces [0] получает меня..
[div#silver.drag]
С большим деревом полезных элементов ниже. Хорошо хорошо.
Но если я попытаюсь сделать то же самое динамически...
pullablepieces + = соседи ['top'];
Вместо этого "DIV HTML OBJECT" и массив pullablepieces получает 23 длины для добавления только одного объекта div. Я не могу перебирать каждую из них, как объект, который распространяется в массив, я не могу правильно ссылаться на него.
Как мне закодировать его так, чтобы он сохранил целостность объекта и все еще просто сохранил его в один элемент массива?
Используйте метод push
:
pullablepieces.push(neighbors['top']);
Если pullablepieces
- массив, вы добавляете элементы в конец массива с .push()
, а не с +=
.
pullablepieces.push(neighbors['top']);
В javascript, +=
- это строковый или числовой оператор, поэтому javascript будет пытаться преобразовать все, что вы дадите, одному из них при использовании этого оператора. Это не оператор, который работает в массиве.
pullablepieces[] = neighbors['top'];
? Или дажеpullablepieces[pullablepieces.length] = neighbors['top'];