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,133
|
|
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,133
|
|
Tony_Gabrial,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
13.10.2020, 22:16
|
Новичок на форуме
|
|
Регистрация: 08.10.2020
Сообщений: 3
|
|
Большое всем спасибо
|
|
|
|