Вставка данных в массив последовательно - PullRequest
0 голосов
/ 30 июня 2011

В настоящее время я пытаюсь выяснить, как спроектировать какой-то цикл для последовательной вставки данных в массив. Я использую Javascript в движке Unity3D.

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

Как бы я проверил индекс массива, чтобы убедиться, что массив [0] взят, а затем использовать массив [1]? Может быть, какой-то цикл или счетчик?

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

Чтобы просто добавить в конец массива, просто используйте .push ().

var myArray = [];
var coord1 = [12,59];
var coord2 = [87,23];

myArray.push(coord1);
myArray.push(coord2);

myArray, теперь содержит два элемента (каждый из которых представляет собой массив из двух координат).

Теперь, вы бы не сделали это таким образом, если бы вы просто статически объявляли все, как я сделал здесь (вы могли бы просто статически объявить весь массив), но я просто взбил этот пример, чтобы показать, как работает pushдобавить элемент в конец массива.

См. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push для справочного документа по толчку.

В случае, если вам нужно знать длину массива при чтении массивабудущее, вы можете использовать атрибут .length.

var lengthOfArray = myArray.length;
0 голосов
/ 30 июня 2011

Использование метода .push(), предложенного jfriend00, тоже моя рекомендация, но чтобы ответить на ваш вопрос о том, как определить следующий индекс, вы можете использовать свойство массива length.Поскольку массивы JavaScript начинаются с нуля, свойство length будет возвращать целое число на единицу больше, чем текущий максимальный индекс, поэтому length также будет значением индекса для использования, если вы хотите добавить еще один элемент в конце:

anArray[anArray.length] = someValue; // add to end of array

Чтобы получить последний элемент в массиве, вы, конечно, говорите anArray[anArray.length-1].

Обратите внимание, что для большинства целей length даст количество элементов вмассив, но я сказал «на единицу выше текущего максимального индекса» выше, потому что массивы JavaScript очень рады, что вы пропустите индексы:

var myArray = [];
myArray[0] = "something";
myArray[1] = "something else";
myArray[50] = "something else again";
alert(myArray.length); // gives '51'
// accessing any unused indexes will return undefined
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...