Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2014, 19:16
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

пробразование строки в объект
Добрый день, подскажите, как более грамотно и коротко преобразовать строку в объект
var str='any_string';
if(typeof(str)=='string'){
	var arr=[];
	arr.push(str);
	str=arr;
};
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2014, 19:24
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

var str='any_string';
if(typeof(str)=='string')
	str=[''+str];


Про {} синтаксис оригинала умалчивает.
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2014, 19:26
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

Сообщение от kostyanet Посмотреть сообщение
var str='any_string';
if(typeof(str)=='string')
	str=[''+str];


Про {} синтаксис оригинала умалчивает.
Спасибо, а если можно, чуть прокомментируйте, не совсем понял как это работает
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2014, 19:29
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Точно так же как у вас, только без пересылок.

На случай чтобы в массив не записался ref мы его унарно обосс... убиваем. Другими словами typeof вообще не требуется если вам заведомо на входе нужен object Array
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2014, 19:31
Кандидат Javascript-наук
Отправить личное сообщение для Cache Посмотреть профиль Найти все сообщения от Cache
 
Регистрация: 02.05.2013
Сообщений: 111

Сообщение от kostyanet Посмотреть сообщение
Точно так же как у вас, только без пересылок.

На случай чтобы в массив не записался ref мы его унарно обосс... убиваем. Другими словами typeof вообще не требуется если вам заведомо на входе нужен object Array
честно говоря, совсем запутался...
данные могут придти как объект (массив) или как строка, для этого и проверка, если строка, преобразуем в массив

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

Последний раз редактировалось Cache, 06.02.2014 в 19:37.
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2014, 19:39
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну тогда проверяйте на тип. Если строка - сделать ее элементом массива и все.

str=[str];

''+str делается чисто ритуально. Неизвестно какой будет контекст, какой-то калбэк или что там еще и мы явно показываем скрипту что хотим сделать строку - строкой но в массиве [].
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2014, 19:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от kostyanet
str=[''+str];
кавычки зачем?
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2014, 19:48
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

В контексте проверки на строку кавычки не нужны, конечно. Это, я ж написал, шорткат преобразования в строку.

s.toString() // канон
''+s // неканон
Ответить с цитированием
  #9 (permalink)  
Старый 06.02.2014, 19:50
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

И вообще строка тоже массив.

console.log(str[6]); // r

Кавычки с php. Там запросто в массив запишется ref, тип которого is_string() покажет труе. А если в массив запишется неконтролирумая ссылка, то где-то значит болтик открутится и задница чья-то отвалится.

Последний раз редактировалось kostyanet, 06.02.2014 в 19:52.
Ответить с цитированием
  #10 (permalink)  
Старый 06.02.2014, 20:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
Кавычки с php
Причем тут PHP?
Подытожим (с учетом корректировки форматирования):
var str = 'any_string';
if (typeof str === 'string')
    str = [str];


Ну и соответственно str - неудачное имя переменной, в которй в итоге будет массив )
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
Как из строки содержащей namespace получить ссылку на объект? wwwboy Общие вопросы Javascript 2 07.12.2011 09:22
Из значения строки надо сделать объект mishaga AJAX и COMET 6 01.07.2011 13:01
как из строки получить объект? miha-ha Общие вопросы Javascript 5 03.09.2010 21:07
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31