 
			
				08.10.2020, 18:30
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 08.10.2020 
					
					
					
						Сообщений: 3
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Помогите разобраться с JS, циклы и условия
			 
			
		
		
		
		"data": { 
                "Contract": { 
                        "19654668": { 
                                "DateIns": "2019-11-20", 
                                "Amount": 53999, 
                                "Dogovor": "54985115555", 
                                "ProgramName": "Стол" 
                        }, 
                        "14898668": { 
                                "DateIns": "2020-10-05", 
                                "Amount": 7345, 
                                "Dogovor": "5498511553333", 
                                "ProgramName": "Кресло" 
                        }, 
                        "19652368": { 
                                "DateIns": "2020-10-05", 
                                "Amount": 9555, 
                                "Dogovor": "549851155553232", 
                                "ProgramName": "Стол" 
                        }, 
                        "7774668": { 
                                "DateIns": "2020-10-25", 
                                "Amount": 9555, 
                                "Dogovor": "549851155551232", 
                                "ProgramName": "Стол и кресло" 
                        } 
                }, 
                "ref": "200822329841A8C7", 
                "date_creat": "2020-08-26", 
        } 
 
 
Помогите пожалуйста написать скрипт. 
 
Условие: 
Если мы находим в каждом объекте data.contract.[key].ProgramName, значение которого равно "Стол" или "Кресло" то сверяем дату "DateIns" с "date_creat": 
 
- Если DateIns >= date_creat, то создавать объект "data.attracted = "Y"; 
- Если DateIns < date_creat, то создаем обект "data.attracted = "N"; 
 
Если полных совпадений в поле ProgramName "Стол" или "Кресло" не найдено, то проставляем "data.attracted = "K" 
 
 
 
РЕМАРКА === Необходимо настроить полное совпадение строки, так как, могут попадаться варианты строки как "Стол и кресло"  - а нам такие варианты не нужны. 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.10.2020, 20:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Tony_Gabrial
			
		
	 | 
 
	| 
		то создавать объект "data.attracted = "Y";
	 | 
 
	
 
 Это не объект, а свойство объекта data будет. А множество свойств с одним и тем же именем быть не может, то есть, значение этого свойства будет постоянно перезаписываться и примет значение последней проверки. Так что что и где создать?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.10.2020, 20:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Tony_Gabrial,
  
<script>
let obj = {"data": {
"Contract": {
"19654668": {
"DateIns": "2019-11-20",
"Amount": 53999,
"Dogovor": "54985115555",
"ProgramName": "Стол"
},
"14898668": {
"DateIns": "2020-10-05",
"Amount": 7345,
"Dogovor": "5498511553333",
"ProgramName": "Кресло"
},
"19652368": {
"DateIns": "2020-10-05",
"Amount": 9555,
"Dogovor": "549851155553232",
"ProgramName": "Стол"
},
"7774668": {
"DateIns": "2020-10-25",
"Amount": 9555,
"Dogovor": "549851155551232",
"ProgramName": "Стол и кресло"
}
},
"ref": "200822329841A8C7",
"date_creat": "2020-08-26",
}};
let date_creat = obj.data.date_creat;
for(let item of Object.values(obj.data.Contract)) {
let attracted = "K";
if(["Стол", "Кресло"].includes(item.ProgramName)) {
attracted = item.DateIns >= date_creat ? "Y" : "N"
}
item.attracted = attracted;
}
document.write(`<pre>${JSON.stringify(obj, "", 4)}</pre>`)
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.10.2020, 20:30
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Tony_Gabrial, 
 Пожалуйста, отформатируйте свой код!
 
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
 
[html run]
... минимальный код страницы с вашей проблемой
[/html]
 
О том, как вставить в сообщение  исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте  http://javascript.ru/formatting.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.10.2020, 22:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 08.10.2020 
					
					
					
						Сообщений: 3
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Большое всем спасибо 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |