powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отсортировать object?
19 сообщений из 19, страница 1 из 1
Как отсортировать object?
    #39447451
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$.getJSON возвращает объект в виде.
Код: javascript
1.
2.
3.
Object {4401: "INTEGRA седан", 4402: "INTEGRA Наклонная задняя часть", 4403: "INTEGRA купе", 4404: "LEGEND", 4405: "LEGEND купе", 4406: "LEGEND II", 
4407: "LEGEND II купе", 4408: "LEGEND III", 4409: "NSX", 4410: "NSX тарга (NA1)", 6092: "MDX (YD1)", 6123: "RL", 6129: "RSX купе (DC_)", 
10059: "MDX (YD2)", 10305: "TSX (CU_)", 10306: "TL (UA8, UA9)", 10307: "RDX", 11379: "ZDX", 12814: "MDX (YD3)", 13181: "TLX"}


Но при получении он сортируется по индексу. А мне нужно отсортировать по названию.
sort() у объекта нет. Т.е. нужно сделать его массивом. А как его сделать массивом в js не в курсе. Подскажите как быть?
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39447469
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или можно как-то сделать, чтобы json не менял сортировку.
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39447488
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39447594
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую.
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448381
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного не то. Там задается имя. А мне нужен массив [ключ:значение]
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448421
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
объект ключ:значение уже есть, но его нельзя сортировать по значению
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448475
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalukalo$.getJSON возвращает объект в виде.
Код: javascript
1.
2.
3.
Object {4401: "INTEGRA седан", 4402: "INTEGRA Наклонная задняя часть", 4403: "INTEGRA купе", 4404: "LEGEND", 4405: "LEGEND купе", 4406: "LEGEND II", 
4407: "LEGEND II купе", 4408: "LEGEND III", 4409: "NSX", 4410: "NSX тарга (NA1)", 6092: "MDX (YD1)", 6123: "RL", 6129: "RSX купе (DC_)", 
10059: "MDX (YD2)", 10305: "TSX (CU_)", 10306: "TL (UA8, UA9)", 10307: "RDX", 11379: "ZDX", 12814: "MDX (YD3)", 13181: "TLX"}


Но при получении он сортируется по индексу. А мне нужно отсортировать по названию.
sort() у объекта нет. Т.е. нужно сделать его массивом. А как его сделать массивом в js не в курсе. Подскажите как быть?
Как вариант, переделать JSON в массив пока он строка.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var str='{4401: "INTEGRA седан", 4402: "INTEGRA Наклонная задняя часть", 4403: "INTEGRA купе",'+
	'4404: "LEGEND", 4405: "LEGEND купе", 4406: "LEGEND II", 4407: "LEGEND II купе", 4408: "LEGEND III",'+
	'4409: "NSX", 4410: "NSX тарга (NA1)", 6092: "MDX (YD1)", 6123: "RL", 6129: "RSX купе (DC_)",'+
	'10059: "MDX (YD2)", 10305: "TSX (CU_)", 10306: "TL (UA8, UA9)", 10307: "RDX", 11379: "ZDX",'+
	'12814: "MDX (YD3)", 13181: "TLX"}';
str=str.replace('{','[');
str=str.replace('}',']');
str=str.replace(/(\d+:.+?(?=,|]))/gm,'{$1}');
alert(str);
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448489
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var str='{4401: "INTEGRA седан", 4402: "INTEGRA Наклонная задняя часть", 4403: "INTEGRA купе",'+
	'4404: "LEGEND", 4405: "LEGEND купе", 4406: "LEGEND II", 4407: "LEGEND II купе", 4408: "LEGEND III",'+
	'4409: "NSX", 4410: "NSX тарга (NA1)", 6092: "MDX (YD1)", 6123: "RL", 6129: "RSX купе (DC_)",'+
	'10059: "MDX (YD2)", 10305: "TSX (CU_)", 10306: "TL (UA8, UA9)", 10307: "RDX", 11379: "ZDX",'+
	'12814: "MDX (YD3)", 13181: "TLX"}';
str=str.replace('{','[');
str=str.replace('}',']');
str=str.replace(/(\d+):(.+?)(?=,|])/gm,'{"key": $1, "value": $2}');
alert(str);
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448492
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalukaloобъект ключ:значение уже есть, но его нельзя сортировать по значению

.. наверное, сначала надо создать массив с идентификаторами (терминология обсуждается :) ) прямо в коллбэке getJSON, например

Код: javascript
1.
2.
3.
4.
5.
6.
7.
  var items = [];
$.getJSON( "ajax/test.json", function( data ) {
  $.each( data, function( key, val ) {
    items.push({index: key, description: value} );
  });
 
});


.. а потом уже сортировать его по полю description
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448495
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. там везде val, а не value .. или наоборот ..
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448515
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но ведь -
Код: javascript
1.
2.
3.
{4401: "INTEGRA седан", 4402: "INTEGRA Наклонная задняя часть", 4403: "INTEGRA купе", 4404: "LEGEND", 4405: "LEGEND купе", 4406: "LEGEND II", 
4407: "LEGEND II купе", 4408: "LEGEND III", 4409: "NSX", 4410: "NSX тарга (NA1)", 6092: "MDX (YD1)", 6123: "RL", 6129: "RSX купе (DC_)", 
10059: "MDX (YD2)", 10305: "TSX (CU_)", 10306: "TL (UA8, UA9)", 10307: "RDX", 11379: "ZDX", 12814: "MDX (YD3)", 13181: "TLX"}


объект. Не строка. И причем с символами кириллицы. И как его сделать строкой?
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448521
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalukaloНемного не то. Там задается имя. А мне нужен массив [ключ:значение]Да там вроде правильный пример
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var obj = {4401: "INTEGRA седан", 4402: "INTEGRA Наклонная задняя часть", 4403: "INTEGRA купе", 4404: "LEGEND", 4405: "LEGEND купе", 4406: "LEGEND II", 
4407: "LEGEND II купе", 4408: "LEGEND III", 4409: "NSX", 4410: "NSX тарга (NA1)", 6092: "MDX (YD1)", 6123: "RL", 6129: "RSX купе (DC_)", 
10059: "MDX (YD2)", 10305: "TSX (CU_)", 10306: "TL (UA8, UA9)", 10307: "RDX", 11379: "ZDX", 12814: "MDX (YD3)", 13181: "TLX"};

var arr = Object.keys(obj).map(function(key) {
  return {idx:key, name:obj[key]};
});
arr.sort(function(a,b){
  if (a.name > b.name) {return 1;}
  if (a.name < b.name) {return -1;}
  return 0;});
console.log(JSON.stringify(arr));
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448522
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalukaloобъект. Не строка. И причем с символами кириллицы. И как его сделать строкой?
Получать данные можно и в формате json, а это уже строка.

Либо перевести объект в строку...
http://dnzl.ru/view_post.php?id=350
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448527
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ступил блин. Спасибо...
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448535
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalukalo,

для регистронезависимого поиска функцию сортировки лучше так записать:
Код: javascript
1.
2.
3.
4.
5.
arr.sort(function(a,b) {
  if (a.name.toUpperCase() > b.name.toUpperCase()) {return 1;}
  if (a.name.toUpperCase() < b.name.toUpperCase()) {return -1;}
  return 0;
});
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448680
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user89,
В итоге сделал так
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
                           var output = [];

					for (var key in json) {
						output[json[key]] = key;
					}
					
					json = output;
					function sname(i, ii) {
					  if (i[0] > ii[0])
						 return 1;
						 else if (i[0] < ii[0])
						 return -1;
						 else
						 return 0;
					}
					json.sort(sname); 
					
					
					console.log(json);
					
					$model[0].selectize.clearOptions();
					
					for (var ans in json) {
					  $model[0].selectize.addOption({value: json[ans], text: ans});
					}

					
					
					
					$model[0].selectize.refreshOptions();
					$model[0].selectize.enable();


В консоли все отсортировано, а selectize выводит как хочет. Почему? Не понятно
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448698
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
LEGEND II
:
"4406"
LEGEND II купе
:
"4407"
LEGEND III
:
"4408"
LEGEND купе
:
"4405"
MDX (YD1)
:
"6092"
MDX (YD2)
:
"10059"
MDX (YD3)
:
"12814"
NSX
:
"4409"
NSX тарга (NA1)
:
"4410"
RDX
:
"10307"
RL
:
"6123"
RSX купе (DC_)
:
"6129"
TL (UA8, UA9)
:
"10306"
TLX
:
"13181"
TSX (CU_)
:
"10305"
ZDX
:
"11379"
length
:
0
__proto__
:
Array(0)
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39448932
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

+100500.
...
Рейтинг: 0 / 0
Как отсортировать object?
    #39449010
vitalukalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо вопрос решил.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отсортировать object?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]