2016-02-24 3 views
2

У меня есть массив:Длина массива с прямой вставкой

var items = new Array(); 

, когда я пытаюсь сделать что-то вроде:

items[100] = ... 

где 100 это идентификатор. Если тогда я иду печатать длину массива, я понимаю, что он большой 100. Есть ли способ сделать такую ​​вещь, но иметь длину для этих предметов?

Например, если у меня есть:

var items = new Array(); 
items[100] = item100; 
items[120] = item120; 
items[150] = item150; 

Я хотел бы длину массива 3 и не 150.

+2

Возможно, объект подойдет вам лучше, если вы заботитесь о самом ключе? –

+1

Да, я бы использовал объект. Редкие массивы - это проблема. – elclanrs

+0

@ OmriAharon К сожалению, из-за проблем я не могу использовать объекты –

ответ

2

С некоторых небольших манипуляций вы можете получить реальный размер массива

items.filter(Object).length; 

Но @charlietfl сказал:

, кажется, вы пытаетесь решить, используя неправильную структуру данных .. .

+0

это не удастся быстро, если какой-либо из элементов массива содержит другие массивы или текст с запятой или пробелами – charlietfl

+0

@charlietfl, конечно, это для чисел, просто экспериментируя – isvforall

+0

ничего не говорит о том, что переменные – charlietfl

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