Длинна массива без length и циклов
Есть массив такого рода:
mass[4]=4 mass[9]=9 Нужно сосчитать кол-во его элементов. length тут вернет максимальный индекс+1. Можно без циклов вывести в данном случае 2? |
как вариант
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
|
Точно, спасибо! Жаль, что нету встроенной функции типа count()
|
var mass = []; mass[4]=4; mass[9]=9; alert(Object.keys(mass).length) |
Endy, любопытно было, запостят ли (самый очевидный) этот вариант :)
Поначалу сам хотел это сделать, но когда пригляделся, что массив - это mass желание пропало) Цитата:
|
nerv_,
Цитата:
Мне почему-то такой сначала вариант прилетел в голову :write:
var mass = [];
mass[4] = 4
mass[9] = 9
alert(mass.join(' ').trim().split(/\s+/).length)
Цитата:
|
Poznakomlus,
Что то Вы перемудрили:). Достаточно
mass.join("").length
|
Цитата:
var mass = [];
mass[4] = 4
mass[9] = 9
mass[8] = 9000
alert(mass.join("").length);
|
Цитата:
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
|
рони,
Вам пожалуй, капитанская фуражка пришлась бы к лицу. Никто не предлагал? Вроде, грамотный спец, на первый взгляд, а такой тупняк постите. |
| Часовой пояс GMT +3, время: 00:17. |