Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2015, 22:06
Аспирант
Отправить личное сообщение для Valentin1918 Посмотреть профиль Найти все сообщения от Valentin1918
 
Регистрация: 10.01.2015
Сообщений: 44

Перевод объекта в массив
У меня есть объект:
var myObj = {key1: "value1", key2: "value2", key3: "value3"};
Подскажите, как его перевести в массив :
["key1":"value1","key2":"value2","key3":"value3 "]

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2015, 22:22
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

if (!Object.keys) Object.keys = function (o) {
    if (o !== Object(o))
        throw new TypeError('Object.keys called on a non-object');
    var k = [],  p;
    for (p in o) if (Object.prototype.hasOwnProperty.call(o, p)) k.push(p);
    return k;
}
var myObj = {key1: "value1", key2: "value2", key3: "value3"};
var result = [], i;
var keys = Object.keys(myObj);
for (i = 0; i < keys.length; i++) {
    result.push(keys[i] + ":" + myObj[keys[i]]);
}
alert(result);

вариант

Последний раз редактировалось Vlasenko Fedor, 08.05.2015 в 23:15.
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2015, 22:35
Аспирант
Отправить личное сообщение для Valentin1918 Посмотреть профиль Найти все сообщения от Valentin1918
 
Регистрация: 10.01.2015
Сообщений: 44

Спасибо, а что-то по проще? (я уверен можно уложиться в пару строк)
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2015, 22:47
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Вариант2
var myObj = {key1: "value1", key2: "value2", key3: "value3"};
var result = [], p;
for (p in myObj) if (myObj.hasOwnProperty(p))result.push(p + ":" + myObj[p]);
alert(result);

первый быстрее в современных броузерах то будет
Ответить с цитированием
  #5 (permalink)  
Старый 08.05.2015, 22:51
Аспирант
Отправить личное сообщение для Valentin1918 Посмотреть профиль Найти все сообщения от Valentin1918
 
Регистрация: 10.01.2015
Сообщений: 44

Спасибо большое
Ответить с цитированием
  #6 (permalink)  
Старый 08.05.2015, 22:59
Аспирант
Отправить личное сообщение для Valentin1918 Посмотреть профиль Найти все сообщения от Valentin1918
 
Регистрация: 10.01.2015
Сообщений: 44

Еще уточнение, у нас получилось:
["key1:value1", "key2:value2", "key3:value3"]
а можно ли , и имеет ли смысл делать такой массив:
["key1":"value1","key2":"value2","key3":"value3 "] ?
Ответить с цитированием
  #7 (permalink)  
Старый 08.05.2015, 23:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

["key1":"value1","key2":"value2","key3":"value3 "] - такого массива быть не может, а переводить объект в массив ["key1:value1", "key2:value2", "key3:value3"] не имеет смысла.
Ответить с цитированием
  #8 (permalink)  
Старый 08.05.2015, 23:02
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

если честно, не зная задачи не смогу сказать
2 варианта строка, а кавычки зачем не скажу
надо понимать для чего это делается. Может и объект тогда подойдет
Ответить с цитированием
  #9 (permalink)  
Старый 08.05.2015, 23:07
Аспирант
Отправить личное сообщение для Valentin1918 Посмотреть профиль Найти все сообщения от Valentin1918
 
Регистрация: 10.01.2015
Сообщений: 44

Причин нет -- просто попросили такое сделать.
Ладно, спасибо!
Ответить с цитированием
  #10 (permalink)  
Старый 08.05.2015, 23:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Можно использовать массив массивов, в котором первый массив, это ключи, а второй их значения, если по каким либо причинам это будет удобнее объекта. А вот ассоциативных массивов в JS нет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести массив объекта Skriptor Ваши сайты и скрипты 6 22.12.2014 17:39
динамическое обновление свойств объекта в цикле grego Общие вопросы Javascript 3 04.12.2013 23:29
Не могу вытащить массив из объекта по указателю из самого объекта bunta Общие вопросы Javascript 3 09.09.2010 18:44
Как отличить массив от объекта Ilyan Общие вопросы Javascript 3 20.04.2010 23:08
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00