Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 26.06.2012, 23:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

arachnoz,
Я же привел в пост 15 кроссбраузерный вариант со вторым массивом ключей
перебираете массив ключей по ключу получаете его подмассив

есть варианты с indexOf массивов - но не кроссбраузерно и запутаетесь еще более, поскольку исходную структуру нун тады переделать
Оптимально
1-м массивом объекта всегда иметь сам массив ключей
Ответить с цитированием
  #22 (permalink)  
Старый 26.06.2012, 23:56
Интересующийся
Отправить личное сообщение для arachnoz Посмотреть профиль Найти все сообщения от arachnoz
 
Регистрация: 26.06.2012
Сообщений: 23

Deff - да, спасибо, я уже понял, что более короткого пути нет
Ответить с цитированием
  #23 (permalink)  
Старый 27.06.2012, 00:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

arachnoz,
Есть, - есть - но спешить не стоит - это понятный, не сильно увеличивает контент и универсальный,

Есть и короче
Ответить с цитированием
  #24 (permalink)  
Старый 27.06.2012, 03:21
Интересующийся
Отправить личное сообщение для arachnoz Посмотреть профиль Найти все сообщения от arachnoz
 
Регистрация: 26.06.2012
Сообщений: 23

В итоге, решил всё вот так.

$(function()	
{
	var towns = [ ]; \\ простой массив, передающийся в autocomplete
	for(i in twns)      \\ обходим БД
	{
		towns[towns.length]=new Array(i); \\ наполняем массив
	}
	
		$("#from").autocomplete({ source: towns }); \\ передаём в autocomplete
		$("#to").autocomplete({ source: towns });
		alert(towns);
});



И что бы вы думали она сказала? Да у тебя же мама педагог... (с)

В общем, autocomlpete сказала - хер вам. Окошко выводит с подсказками и даже, судя по сокращению его размеров при вводе городов, выводит города, но только названий их нет

При том, что если вручную сформировать для неё массив вида

towns = ['город', 'другой город'];


- всё прекрасно выводится. Алерт при этом сгенеренный массив выводит нормально. Никто не сталкивался с такой бедой?
Ответить с цитированием
  #25 (permalink)  
Старый 27.06.2012, 12:31
Интересующийся
Отправить личное сообщение для arachnoz Посмотреть профиль Найти все сообщения от arachnoz
 
Регистрация: 26.06.2012
Сообщений: 23

Поставил Firebug и посмотрел, что выводится. Понял причину.

Фигня в том, что массив у меня получается такого вида,

[['город'], ['другой город']]


а мне нужно передать в autocomplete

['город', 'другой город']


Подскажите, как обратиться избавиться от лишних скобок в выводе.
Ответить с цитированием
  #26 (permalink)  
Старый 27.06.2012, 12:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

похоже, что надо сделать нормальный массив можно скопировать.
Ответить с цитированием
  #27 (permalink)  
Старый 27.06.2012, 12:57
Интересующийся
Отправить личное сообщение для arachnoz Посмотреть профиль Найти все сообщения от arachnoz
 
Регистрация: 26.06.2012
Сообщений: 23

melky - к сожалению, я не в силах оценить Ваш юмор, т.к. даже не могу понять, чем не нормален этот массив
Я пытался сделать из массива строку при помощи join, но, соответственно, autocomplete не хочет принимать строку. Хочу сказать спасибо разработчикам JQuery за два потраченных дня, мне кажется, я бы уже сам написал autocomplete для этого калькулятора за это время.

Последний раз редактировалось arachnoz, 27.06.2012 в 13:00.
Ответить с цитированием
  #28 (permalink)  
Старый 27.06.2012, 12:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от arachnoz Посмотреть сообщение
Конструкция

var twns ={
'Абакан':['9-12',3150,90,87,83,68,65,62],
'Альметьевск':['5-7',2520,72,69,65,53,50,47],
'Анапа':['4-5',2170,62,60,56,45,42,39]};

for(i in twns){
alert(i+':\n'+twns[i]);}


Выводит по очереди все массивы, содержащиеся в объекте. Я правильно выражаюсь? Это же объект?
Соответственно, напрямую получить название города я не могу.
Как это не могу?
Ну косинус же! (с)
var twns ={
   'Абакан':['9-12',3150,90,87,83,68,65,62],
   'Альметьевск':['5-7',2520,72,69,65,53,50,47],
   'Анапа':['4-5',2170,62,60,56,45,42,39]
};
for(i in twns){
   alert(i);
};
Ответить с цитированием
  #29 (permalink)  
Старый 27.06.2012, 13:03
Интересующийся
Отправить личное сообщение для arachnoz Посмотреть профиль Найти все сообщения от arachnoz
 
Регистрация: 26.06.2012
Сообщений: 23

2 ksa - спасибо большое, это я уже догнал и реализовал. Но теперь я собираю это неправильно в массив
Ответить с цитированием
  #30 (permalink)  
Старый 27.06.2012, 13:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от arachnoz
Но теперь я собираю это неправильно в массив
Значит пора таки "собрать" правильно
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возвращаемый массив jQuery селектора HelpeR jQuery 11 26.06.2012 16:16
jquery не работает в цикле alexus jQuery 3 03.09.2011 14:49
Многомерный массив javascript simple Общие вопросы Javascript 20 03.11.2010 02:11
ajax и многомерный массив cat9 AJAX и COMET 1 03.10.2010 15:25
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14