 
			
				15.08.2017, 13:08
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.04.2016 
					
					
					
						Сообщений: 5
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Узнать длину после преобразования в объект
			 
			
		
		
		
		Добрый день. 
Нужно получить информацию с localStorage, в виде объекта
 
order = JSON.parse(localStorage.getItem('basketwidjet'));
И запустить цыкл равный количеству элементов в объекте, но:
 
order.length === undefined;
 
Строка выглядит примерно следующим образом 
 
'"{"1":{"id":1,"name":"Артикул 2","price":299,"num":1,"url":"http://site/","photo":""},"2":{"id":2,"name":"Артикул 2","price":220,"num":1,"url":"http://site/","photo":""},"3":{"id":3,"name":"Артикул 6","price":179,"num":1,"url":"http://site/","photo":""}}"'
Мне необходимо сделать список всех 'name' и вывести сумму всех 'price'  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.08.2017, 13:20
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от FALKOR
			
		
	 | 
 
	
		Строка выглядит примерно следующим образом  
'"{"1":{"id":1,"name":"Артикул 2","price":299,"num":1,"url":"http://site/","photo":""},"2":{"id":2,"name":"Артикул 2","price":220,"num":1,"url":"http://site/","photo":""},"3":{"id":3,"name":"Артикул 6","price":179,"num":1,"url":"http://site/","photo":""}}"'
	 | 
 
	
 
 Второй и предпоследний символ  - лишние.
 
	
 
	| 
		
			Сообщение от FALKOR
			
		
	 | 
 
	
		но: 
order.length === undefined;
 
	 | 
 
	
 
 У объекта нет такого свойства.    
	
 
	| 
		
			Сообщение от FALKOR
			
		
	 | 
 
	| 
		Мне необходимо сделать список всех 'name' и вывести сумму всех 'price'
	 | 
 
	
 
 
var str='{"1":{"id":1,"name":"Артикул 2","price":299,"num":1,"url":"http://site/","photo":""},"2":{"id":2,"name":"Артикул 2","price":220,"num":1,"url":"http://site/","photo":""},"3":{"id":3,"name":"Артикул 6","price":179,"num":1,"url":"http://site/","photo":""}}'
var o = JSON.parse(str);
var sum=0;
for (var i in o) {
	alert(o[i].name);
	sum+=o[i].price;
};
alert('sum='+sum);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.08.2017, 13:24
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		FALKOR,
  
var basketwidjet  = '{"1":{"id":1,"name":"Артикул 2","price":299,"num":1,"url":"http://site/","photo":""},"2":{"id":2,"name":"Артикул 2","price":220,"num":1,"url":"http://site/","photo":""},"3":{"id":3,"name":"Артикул 6","price":179,"num":1,"url":"http://site/","photo":""}}',
order = JSON.parse(basketwidjet),
l = Object.keys(order).length,
n = Object.keys(order).map(function (key) {
return  order[key].name
}),
s =  Object.keys(order).reduce(function (a,key) {
return  a + order[key].price
},0);
alert(l);
alert(n)
alert(s)
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось рони, 15.08.2017 в 13:27.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				15.08.2017, 13:30
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от FALKOR
			
		
	 | 
 
	
		Строка выглядит примерно следующим образом  
'"{"1":{"id":1,"name":"Артикул 2","price":299,"num":1,"url":"http://site/","photo":""},"2":{"id":2,"name":"Артикул 2","price":220,"num":1,"url":"http://site/","photo":""},"3":{"id":3,"name":"Артикул 6","price":179,"num":1,"url":"http://site/","photo":""}}"'
	 | 
 
	
 
 Вариант с массивом смотрится более эстетично...   
var str='[{"id":1,"name":"Артикул 2","price":299,"num":1,"url":"http://site/","photo":""},{"id":2,"name":"Артикул 2","price":220,"num":1,"url":"http://site/","photo":""},{"id":3,"name":"Артикул 6","price":179,"num":1,"url":"http://site/","photo":""}]'
var a = JSON.parse(str);
var sum=0;
for (var i=0; i<a.length; i++) {
	alert(a[i].name);
	sum+=a[i].price;
};
alert('sum='+sum);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |