Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.05.2015, 20:23
Новичок на форуме
Отправить личное сообщение для danies Посмотреть профиль Найти все сообщения от danies
 
Регистрация: 01.03.2015
Сообщений: 9

Длинна массива без length и циклов
Есть массив такого рода:
mass[4]=4
mass[9]=9

Нужно сосчитать кол-во его элементов. length тут вернет максимальный индекс+1. Можно без циклов вывести в данном случае 2?
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2015, 21:43
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

как вариант
var mass = [];
mass[4] = 4
mass[9] = 9
mass[8] = 9
alert(mass.join().split(/\d+/).length - 1);

mass.join().replace(/\,{2,}/g, ',').replace(/^\,|\,$/,'').split(',').length

Последний раз редактировалось Vlasenko Fedor, 31.05.2015 в 21:58.
Ответить с цитированием
  #3 (permalink)  
Старый 31.05.2015, 21:48
Новичок на форуме
Отправить личное сообщение для danies Посмотреть профиль Найти все сообщения от danies
 
Регистрация: 01.03.2015
Сообщений: 9

Точно, спасибо! Жаль, что нету встроенной функции типа count()
Ответить с цитированием
  #4 (permalink)  
Старый 31.05.2015, 23:01
Аспирант
Отправить личное сообщение для Endy Посмотреть профиль Найти все сообщения от Endy
 
Регистрация: 15.05.2015
Сообщений: 41

var mass = [];
mass[4]=4;
mass[9]=9;
alert(Object.keys(mass).length)
Ответить с цитированием
  #5 (permalink)  
Старый 31.05.2015, 23:05
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Endy, любопытно было, запостят ли (самый очевидный) этот вариант

Поначалу сам хотел это сделать, но когда пригляделся, что массив - это mass желание пропало)

Сообщение от danies
Длинна массива без length и циклов
на-фи-га?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 31.05.2015, 23:31
Аспирант
Отправить личное сообщение для Endy Посмотреть профиль Найти все сообщения от Endy
 
Регистрация: 15.05.2015
Сообщений: 41

nerv_,
Сообщение от nerv_
любопытно было, запостят ли (самый очевидный) этот вариант
да знаю, я Кэп

Мне почему-то такой сначала вариант прилетел в голову
var mass = [];
mass[4] = 4
mass[9] = 9
alert(mass.join(' ').trim().split(/\s+/).length)


Сообщение от nerv_
на-фи-га?
тот же вопрос и вообще не понятно для чего нужны эти пропуски в массиве,почему бы не работать с обычным объектом?
Ответить с цитированием
  #7 (permalink)  
Старый 01.06.2015, 00:55
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

Poznakomlus,
Что то Вы перемудрили. Достаточно
mass.join("").length
Ответить с цитированием
  #8 (permalink)  
Старый 01.06.2015, 01:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от indeterm
Достаточно
mass.join("").length
вы проверьте сначала

var mass = [];
mass[4] = 4
mass[9] = 9
mass[8] = 9000
alert(mass.join("").length);
Ответить с цитированием
  #9 (permalink)  
Старый 01.06.2015, 01:03
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

Сообщение от nerv_
самый очевидный
Это самый хреновый вариант, BTW
var protomass = new Array
protomass[1]=1

mass=[]
mass.__proto__=protomass
mass[4] = 4
mass[9] = 9
mass[8] = 9
console.log(
 mass.join().split(/\d+/).length - 1,
 Object.keys(mass).length,
 mass.join("").length
);



//>>>> 4 3 4
Ответить с цитированием
  #10 (permalink)  
Старый 01.06.2015, 01:05
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

рони,
Вам пожалуй, капитанская фуражка пришлась бы к лицу. Никто не предлагал? Вроде, грамотный спец, на первый взгляд, а такой тупняк постите.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элемента массива без сдвига индексов preproger Общие вопросы Javascript 6 06.03.2015 17:50
много переменных без массива Fedya Общие вопросы Javascript 1 10.11.2013 23:37
Как удалить элемент массива без нарушениея последовательности индэксов Tek Общие вопросы Javascript 1 12.10.2012 11:16
Рекурсия без циклов kilogram Серверные языки и технологии 1 21.04.2012 00:15
использование byName без массива borovik Общие вопросы Javascript 10 10.10.2011 00:12