16.06.2023, 14:09
|
Кандидат Javascript-наук
|
|
Регистрация: 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']
спасибо
|
|
16.06.2023, 14:43
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
od0201,
а так?
let[a,b]=['1','2'];
let obj={a, b};
|
|
16.06.2023, 15:09
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от od0201
|
не хочу так
|
Пример довольно странный...
Почему расхотел вот так, без "статического" массива?
const obj = {
a: '1',
b: '2'
}
Допустим есть массив...
const a = ['1', '2']
// тогда
const obj = {
a: a[0],
b: a[1]
}
|
|
16.06.2023, 15:14
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Пусть даже массив достаточно велик...
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))
|
|
16.06.2023, 15:20
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
Сообщение от od0201
|
//хочу компактно, как-то так
let obj={}
[obj.a,obj.b]=['1','2']
|
Кто мешает? Хипстерская ненависть к точкам с запятой?
let obj={};
[obj.a,obj.b]=['1','2'];
console.log(obj);
__________________
29375, 35
|
|
16.06.2023, 16:43
|
Кандидат Javascript-наук
|
|
Регистрация: 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
|
Кто мешает? Хипстерская ненависть к точкам с запятой?
|
ага, спасибо, то что надо
Всем спасибо, было познавательно.
|
|
16.06.2023, 16:46
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,585
|
|
od0201, вообще у меня нет проектов где я бы не подключал сходу lodash, а потому проще это делать так:
let obj = zipObject(['a', 'b'], [1, 2]);
__________________
29375, 35
|
|
16.06.2023, 17:17
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от 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);
|
|
|
|