Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2011, 19:04
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Ассоциативный массив
Здрасте, у меня вопрос. Создаю массив чисел:
var multi=new Array();
multi['0']=[130,40,8];
multi['20']=[125,30,5];
alert(multi.length); // выдает 21
alert(multi);// выдает 130,40,80,125,30,5,,,,,,,,,,,,,,,,кучу запятых

Это что значит если индексы в ключах идут не по порядку то память все равно они занимают? и как тогда узнать истинную длину массива?
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2011, 19:13
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от simple
Это что значит если индексы в ключах идут не по порядку то память все равно они занимают?
Нет, не занимают.
Сообщение от simple
и как тогда узнать истинную длину массива?
В свойстве length находится воистину истинная длина.
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2011, 19:17
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Цитата:
В свойстве length находится воистину истинная длина.
Ну так у меня всего лишь 2 массива ведь, multi[0] и multi[20] должно по идеи казать 2 или 1 если с 0 считать а кажет 21
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2011, 19:18
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Господи Иисусе.

вот так

function get_TRUTH ( array ){

for( var i = 0, TRUTH  = 0; i < array.length ; i++ ){ 
 
    if( typeof array[ i ] === "undefined" ) continue;

   TRUTH++;

}

return TRUTH;

}



var t = [1,2,3];

t.length = 333;

alert (   get_TRUTH( t )  )
Ответить с цитированием
  #5 (permalink)  
Старый 05.05.2011, 19:24
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Спасиб, а как убрать запятые которые в алерте добавляются?
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2011, 19:25
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

убрать элементы , значение которых не установлено или их длина равна нулю О_о
Ответить с цитированием
  #7 (permalink)  
Старый 05.05.2011, 19:27
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

а почему тогда если они равны нулю и их нет почему тогда запятые рисуются как будто это пустые элементы?
Ответить с цитированием
  #8 (permalink)  
Старый 05.05.2011, 19:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от simple Посмотреть сообщение
запятые рисуются как будто это пустые элементы
сам ответил на свой вопрос


почему равны нулю?

если они равны нулю,тогда все ок

я про длину сказал


var a = [ "",0,false,null,undefined ]

alert( "длина массива - "+ a.length + "\nСам массив :\n"+a+"\n Длина последнего : "+a[ 0 ].length )
Ответить с цитированием
  #9 (permalink)  
Старый 05.05.2011, 19:49
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Спасиб, а вот еще глупый вопрос. А как получить сами ключи этого массива?
for(a in multi){
alert(a); // выдает 0,1
alert(multi[a]); // выдает 130,40,80,125,30,5
}

А как получить сами индексы т.е 0 и 20
Ответить с цитированием
  #10 (permalink)  
Старый 05.05.2011, 20:06
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

хм..когда вместо цифр в ключами делаешь буквы то все работает, а почему с цифрами так происходит?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассоциативный массив, toSource() Kos Общие вопросы Javascript 4 07.08.2010 23:38
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
добавить элементы в ассоциативный массив noer Элементы интерфейса 7 14.05.2009 10:41
Как создать ассоциативный массив JS + CSS occlusion Общие вопросы Javascript 3 12.01.2009 09:19
ассоциативный массив где ключ это год или ..... Sandr Общие вопросы Javascript 8 18.07.2008 15:39