 
			
				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,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		od0201, 
 а так?
 
let[a,b]=['1','2'];
let obj={a, b};
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				16.06.2023, 15:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Пусть даже массив достаточно велик... 
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,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от 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,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		od0201, вообще у меня нет проектов где я бы не подключал сходу lodash, а потому проще это делать так:  
let obj = zipObject(['a', 'b'], [1, 2]);
  
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				16.06.2023, 17:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |