Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.06.2023, 14:09
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

array to object
//не хочу так

let obj={}
let[a,b]=['1','2']
obj.a=a
obj.b=b


//хочу компактно, как-то так

let obj={}
[obj.a,obj.b]=['1','2']


спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 16.06.2023, 14:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

od0201,
а так?
let[a,b]=['1','2'];
let obj={a, b};
Ответить с цитированием
  #3 (permalink)  
Старый 16.06.2023, 15:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,135

Сообщение от od0201
не хочу так
Пример довольно странный...

Почему расхотел вот так, без "статического" массива?

const obj = {
   a: '1',
   b: '2'
}


Допустим есть массив...

const a = ['1', '2']
// тогда
const obj = {
   a: a[0],
   b: a[1]
}
Ответить с цитированием
  #4 (permalink)  
Старый 16.06.2023, 15:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,135

Пусть даже массив достаточно велик...

const a = ['1', '2', '3', '4', '5']
// тогда
const obj = ['a', 'b', 'c', 'd', 'f'].reduce((o, k, i) => (o[k] = a[i], o),{})
alert(JSON.stringify(obj))
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2023, 15:20
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,511

Сообщение от od0201 Посмотреть сообщение
//хочу компактно, как-то так

let obj={}
[obj.a,obj.b]=['1','2']
Кто мешает? Хипстерская ненависть к точкам с запятой?

let obj={};
[obj.a,obj.b]=['1','2'];

console.log(obj);
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2023, 16:43
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

Сообщение от ksa Посмотреть сообщение
Пример довольно странный...
названия полей не совсем короткие и так много раз в процесе парсинга вебстраницы. Будет не читабельно, если название полей повторять больше одного раза, а так более именее
[res.descriptionMy,res.descriptionYour]=[...doc.querySelectorAll("table.text table.text2 div")].map(e=>e.textContent);
[res.name]=[...doc.querySelectorAll("title")].map(e=>e.textContent.split(":")[0]);


Сообщение от Aetae Посмотреть сообщение
Кто мешает? Хипстерская ненависть к точкам с запятой?
ага, спасибо, то что надо

Всем спасибо, было познавательно.
Ответить с цитированием
  #7 (permalink)  
Старый 16.06.2023, 16:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,511

od0201, вообще у меня нет проектов где я бы не подключал сходу lodash, а потому проще это делать так:
let obj = zipObject(['a', 'b'], [1, 2]);
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 16.06.2023, 17:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,135

Сообщение от od0201
а так более именее
Как для меня так уже слишком длинная строка...

Сообщение от od0201
[res.descriptionMy,res.descriptionYour]=[...doc.querySelectorAll("table.text table.text2 div")].map(e=>e.textContent);
Хотя бы так

const a = doc.querySelectorAll("table.text table.text2 div")
[res.descriptionMy,res.descriptionYour]=[...a].map(e=>e.textContent);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассоциативные многомерные массивы для страницы товара с кнопкой предзаказа Mikael86 Общие вопросы Javascript 27 18.03.2018 13:31
Ajax запрос к Wcf сервису возвращает Object Object Itogoo333 Общие вопросы Javascript 6 13.01.2016 03:02
Борьба с Object.defineProperty в IE8 FINoM Оффтопик 46 04.09.2012 23:45
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50