2013-12-02 4 views
0

Я храню элементы div в ассоциативном массиве, так что консоль представит мне такую ​​информацию. Итак, console.log («вражеские ящики») получает меня:Как добавить это в массив динамически?

Object {left: null, top: div#silver.drag, right: null, bot: div#gold.drag} 

Пока что так хорошо.

Затем я пытаюсь добавить это в массив или обработать позже.

pullablepieces [0] = neighbors ['top'];

Это прекрасно работает. Console.log pullablepieces [0] получает меня ..

[div#silver.drag] 

С большим деревом полезных элементов ниже. Хорошо хорошо.

Но если я пытаюсь сделать то же самое, динамически ...

pullablepieces + = соседей [ 'сверху'];

Я получаю вместо этого «DIV HTML OBJECT» и массив pullablepieces получает 23 длины для добавления только одного объекта div. Я не могу перебирать каждую из них, как объект, который распространяется в массив, я не могу правильно ссылаться на него.

Как мне закодировать его так, чтобы он сохранил целостность объекта и все еще просто сохранил его в одном элементе массива?

+0

Я не уверен, но вы пробовали 'pullablepieces [] = соседей [ 'Top'];'? Или даже 'pullablepieces [pullablepieces.length] = neighbors ['top'];' – James

ответ

0

Используйте push метод:

pullablepieces.push(neighbors['top']);

+0

Я попробую это. Скорее всего, я просто был глуп, а + = разрушил мой код. –

+0

Спасибо! Он работал хорошо. –

0

Если pullablepieces - это массив, вы добавляете элементы в конец массива с .push(), а не с +=.

pullablepieces.push(neighbors['top']); 

В JavaScript += является оператором строки или числа так Javascript будет пытаться конвертировать все, что вы даете его к одному из тех, когда вы используете этот оператор. Это не оператор, который работает в массиве.

Смежные вопросы