Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Некорректный вывод значений массива (https://javascript.ru/forum/misc/51185-nekorrektnyjj-vyvod-znachenijj-massiva.html)

running 27.10.2014 22:39

Некорректный вывод значений массива
 
Ребята, мне нужно вывести массив положительных чисел. Я записываю значения в новый массив, а мне выводится с индексами.

Код:

function showArray(){
  var numberList = [-3, 25, 14, -7, 5, -14, -28];
  var arr=[];
  
    for(var i=0; i<numberList.length; i++){
      
    if(numberList[i] < 0) {
        arr[i] = numberList[i];
    }
    }
      return arr;
      };

     console.log(showArray());

Результат: [1: 25, 2: 14, 4: 5]

Где ошибка ?

Aetae 27.10.2014 22:45

Нигде. Всё работает как и должно. Что тебе не так?

running 27.10.2014 22:54

Цитата:

Сообщение от Aetae (Сообщение 337910)
Нигде. Всё работает как и должно. Что тебе не так?

Мне нужно, чтобы выводило исключительно элементы массива, без индексов.
То есть результат в таком виде нужен: [25, 14, 5];

А у меня массив выходит даже другой длины, не 3, а 6.

bes 27.10.2014 22:58

Цитата:

Сообщение от running
Результат: [1: 25, 2: 14, 4: 5]

результат неверный, так как
Цитата:

Сообщение от running
if(numberList[i] < 0) {


если ты хотел получить подряд, то есть push

running 27.10.2014 23:10

[quote=bes;337912]результат неверный, так как

if(numberList[i] < 0)

знак равенства изменил, то я изначально напутал

danik.js 27.10.2014 23:23

Цитата:

Сообщение от running
А у меня массив выходит даже другой длины, не 3, а 6.

Ты дырявый массив создаешь. С учетом дырок и получается 6. Как избежать дырок тебе подсказали.

running 27.10.2014 23:26

bes, danik.js спасибо за помощь

kostyanet 28.10.2014 03:35

Не слушайте профессоров, это в дампе он выглядит дырявым, а в реальности такой массив - монолит. Прочитайте его элемент за элементом в цикле фор - сами все увидите.

kostyanet 28.10.2014 03:38

Цитата:

Сообщение от running
чтобы выводило исключительно элементы массива, без индексов

Индексы есть всегда, как это без индексов.

Просто дамп переменной это НЕ вывод. А дамп.

kostyanet 28.10.2014 03:47

Цитата:

Сообщение от running
А у меня массив выходит даже другой длины, не 3, а 6.

Зацени те

var arr=[];
arr[123456789]=1;
arr.length;
/*
123456790
*/


Часовой пояс GMT +3, время: 04:53.