Длинна массива без 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, время: 22:30. |