Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вопрос по квадратным скобкам (https://javascript.ru/forum/misc/23944-vopros-po-kvadratnym-skobkam.html)

гуня 12.12.2011 19:29

вопрос по квадратным скобкам
 
var s = [{name:"Вельможа",mp3:"Velmoja.mp3"}];

как программно получить такое выражение?
{name:"Вельможа",mp3:"Velmoja.mp3"} -это json, а как его сконкатенировать с []? и для чего тут вобще это нужно?

trikadin 12.12.2011 19:30

Непонятно, что вам нужно. Опишите задачу подробнее.

гуня 12.12.2011 19:47

программно получить выражение var s = [{name:"Вельможа",mp3:"Velmoja.mp3"}];

trikadin 12.12.2011 19:53

var s = [{name:"Вельможа",mp3:"Velmoja.mp3"}];

гуня 12.12.2011 19:56

это называется программно?
уважаемый, если вам не с кем пообщаться, то вспомните про своих родителей

Nekromancer 12.12.2011 20:11

А как можно его получить не программно? Играя в шахматы например, этого точно не добьёшься.

гуня 12.12.2011 20:18

программно значит в рантайме, а не в момент написания ручками

nerv_ 12.12.2011 20:33

Цитата:

Сообщение от trikadin
var s = [{name:"Вельможа",mp3:"Velmoja.mp3"}];

Я недавно на этом форуме, но заметил тенденцию: человеку отвечаешь/помогаешь, а тебя еще и посылают куда подальше. Не правильно это как-то :stop:

Nekromancer 12.12.2011 20:35

В момент написания "ручками" скрипт не исполняется. А когда исполняется и происходит ваше заветное действие. Если вам нужно создать этот объект потом, используйте функцию. Что такого то? Но функции тоже просто так не исполняются. Их запускаете либо вы либо среда.

ksa 12.12.2011 21:01

Цитата:

Сообщение от nerv_
человеку отвечаешь/помогаешь, а тебя еще и посылают куда подальше

Даже для понимания этого уже нужно что-то уметь...

devote 13.12.2011 08:24

var blah = new Array();
blah.push({});
blah[0]["name"] = "Вельможа";
blah[0]["mp3"] = "Velmoja.mp3";

гуня 13.12.2011 09:22

спасибо, правда уже подсказали на другом форуме

в который раз убеждаюсь что тут торчит 99% снобов, как на хабре

Nekromancer 13.12.2011 10:38

За то эти снобы знают, что сделать так гораздо проще и даже не поверите, быстрее во всех смыслах:
var blash = [{name:"Вельможа",mp3:"Velmoja.mp3"}];


Как и на хабре.

devote 13.12.2011 11:46

Nekromancer,
просто вы не совсем поняли человека, как я понял автору нужно было показать как строятся данные объекты постепенно а не сразу.

Nekromancer 13.12.2011 11:51

devote,
даже если объяснять человеку как строятся данные, вы ему показали ужасный пример. За такие примеры канделябром бьют.

devote 13.12.2011 11:53

Цитата:

Сообщение от Nekromancer
devote,
даже если объяснять человеку как строятся данные, вы ему показали ужасный пример. За такие примеры канделябром бьют.

Я показал простейший и главное ПОНЯТНЫЙ пример... Этого я думаю достаточно, может вам и в кайф писать тут листинги программ по сто строк, мне же нет времени на это.

Nekromancer 13.12.2011 12:00

devote,
Так никто не заставляет вас вообще писать тут :)

devote 13.12.2011 12:13

Цитата:

Сообщение от Nekromancer (Сообщение 142437)
devote,
Так никто не заставляет вас вообще писать тут :)

Ну это я как нить сам решу.

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

GuardCat 13.12.2011 12:26

Насколько я понял, человек хотел:
а) Узнать что обозначают квадратные скобки в принципе. Достаточно было сказать, что в js они обозначают массив.
б) Узнать, что обозначает конструкция типа [{a:1, b:2}]. Достаточно было сказать, что это массив, единственным элементом которого является объект.
в) Узнать, как получить такую структуру данных, если есть только объект в формате JSON. Пожалуй, можно ответить так:
var arr = [];
var json_text = JSON.stringify({a:1, b:2}); // "{'a':1,'b':2}"
var json_object = JSON.parse(json_text); // {a:1, b:2}
arr.push(json_object); // [{a:1, b:2}]
alert(arr[0].a);// 1

Nekromancer 13.12.2011 12:40

Если вы не в курсе, JSON кодирует и массивы:
alert(JSON.stringify([{a:1, b:2}]));

Livanderiaamarum 13.12.2011 12:59

КАК ЧЕЛОВЕК ВЫРАЗИЛ СВОЮ МЫСЛЬ ТАК ЕГО И ПОНЯЛИ! ЕСЛИ ЕГО ПОНЯЛИ НЕ ПРАВИЛЬНО, ТО ЭТО УЖЕ ЕГО УПУЩЕНИЕ!!

в рантайме, как он сказал, получить такое ВЫРАЖЕНИЕ можно так:
var code = 
'var s ='    +    ' [{name  '    +   ' :"Вельможа",mp '   +  
' 3:"Velmoja.mp3"}'     +     ']'
//получили выражение ПРОГРАММНО в рантайме, засунули его в  переменную code
eval (code)//выполняем выражение


PROBLEM?????

GuardCat 13.12.2011 13:03

Цитата:

Сообщение от Nekromancer (Сообщение 142446)
Если вы не в курсе, JSON кодирует и массивы:
alert(JSON.stringify([{a:1, b:2}]));

О, действительно был не в курсе, спасибо. Но вопрос топикстартера был не об этом. По условиям задачи, в JSON содержится именно объект, который нужно поместить в массив.


Часовой пояс GMT +3, время: 23:25.