Javascript: Как очистить неопределенные значения из массива - PullRequest
4 голосов
/ 07 марта 2012

Я пытаюсь перебрать массив, удалить и пропустить элементы, пока не существует только один. я пробовал соединять, но это портит мой цикл, потому что элемент из arr [1] становится arr [0] и т. д.

Допустим, есть 10 человек. Я хотел бы удалить человека 1, затем оставить человека 2, затем удалить человека 3 и оставить человека 4. Этот шаблон будет продолжаться, пока не останется только один.

подойдет любая помощь.

Ответы [ 13 ]

0 голосов
/ 07 марта 2012

Лучше всего создать дубликат массива, а затем соединить его с оригиналом.

Или просто используйте коллекцию (ключ-> значение) и просто удалите ключ, например

 People = {a: "Person A", b: "Person B", c:"Person C"};
 delete People.a;
 delete People.c;  //now the People collection only has 1 entry.

Вы можете заменить a, b, c числами, просто используя его в качестве примера,

 People = {0: "Person A", 1: "Person B", 2:"Person C"};
 delete People[0];
 delete People[1];
0 голосов
/ 07 марта 2012

Не совсем точно, что вы пытаетесь достичь, но я чувствую, что вы полагаетесь на индекс позиции элемента в массиве, чтобы продолжить свою программу.В этом случае я бы предложил использовать хешированный массив, т. Е. Массив пар Key <> Value.

В этом случае arr["2"] всегда указывает на элемент, который вы изначально в него поместили.Таким образом, вы можете логически / численно проходить, не беспокоясь об изменениях позиции.

Остерегайтесь риска преобразования типов и ловушек!

0 голосов
/ 07 марта 2012
  while(yourarray.length>1) //only one left
    {
    // your code
    }
...