Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Corezoid && JS = Трабл с Обектами и массивами (https://javascript.ru/forum/misc/58560-corezoid-js-%3D-trabl-s-obektami-i-massivami.html)

Gradu 29.09.2015 00:01

Corezoid && JS = Трабл с Обектами и массивами
 
Помогите пожалуйста, необходимо написать код для сравнения данных которые у меня пришли, и затем если успешный поиск, то придать значение атребуту "NumberBaz" = 1 или если нет, то 2.

Мне приходят данные в таком виде:

data: {
"INF_NEW": [
{
"P_CLIENTATTRS": [

{
"FlSendAdv": null,
"ViberFlag": "Y",
"VerifyTrend": "0",
"VerifyCodeAbs": "0",
"VerifyCode": "0",
"St": "A",
"Number": "STANISLAV@BANK.UA",
"Main": "Y",
"GroupMain": "N",
"ContactID": "565465",
"ClientID": "8768678",
},
],
"uaFName": "СТАНІСЛАВ",
"PerMan": "",
"Id": "8768678",
"FlPhys": "Y",
"FlJur": "N"
},
{
"CONT_INF": [
{
"Remark": null,
"FlSendAdv": null,
"ViberFlag": "Y",
"VerifyTrend": "0",
"VerifySource": "UNKNOWN",
"VerifyCodeAbs": "0",
"VerifyCode": "0",
"St": "O",
"Source": "UNKNOWN",
"PushFlag": "Y",
"Number": "+3804354335",
"Main": "N",
"GroupMain": "N",
"ContactID": "10767",
"ClientID": "11486",

}
],
"uaMName": null,
"uaLName": null,
"uaFName": null,
"PerMan": "",
"Id": "11486",
"FlPhys": "Y",
"FlJur": "N"
}
],
"Phone_new": "+3804354335",
"Email": "STANISLAV@BANK.UA",
"Phone_no": 1,

:help:

Я пробую вытянуть данные таким образом:

var P_CLIENTATTRS = data.INF_NEW.P_CLIENTATTRS
for (var e in P_CLIENTATTRS) {
if (P_CLIENTATTRS[e].Number == data.Email) // сравниваю на наличие необходимого мне атрибута

{data.NumberBaz = 1}
else {data.NumberBaz = 2}
break;
}
var CONT_INF = data.INF_NEW.CONT_INF
for (var j in CONT_INF) {
if (CONT_INF[j].Number == data.Email)

{data.NumberBaz = 1}
else {data.NumberBaz = 2}

в результате:
"__conveyor_code_return_description__": "[{exception,<<\"ReferenceError: CONT_INF is n
ot defined\">>}]",

И еще по мимо всего прочего перезаписывается P_CLIENTATTRS на CONT_INF...
уже 4й день ищу проблему(( Пожалуйста помогите... :help: :help: :help:

ksa 29.09.2015 08:18

Цитата:

Сообщение от Gradu
Я пробую вытянуть данные таким образом:
var P_CLIENTATTRS = data.INF_NEW.P_CLIENTATTRS

data.INF_NEW

Уже массив. ;)

Цитата:

Сообщение от Gradu
Пожалуйста помогите

У тебя пока даже нормального тестового примера нет... :(

Gradu 29.09.2015 19:01

for (var e in P_CLIENTATTRS) {
if (P_CLIENTATTRS[e].Number == data.Email) // сравниваю на наличие необходимого мне атрибута

я таким образом произвожу поиск елементов в этом массиве, ранее проходил поиск успешно, а именно в этом случае почему-то не отробатывается код и уходит в ошибки. Так-же не понимаю, почему происходит замена P_CLIENTATTRS на CONT_INF...

Gradu 13.10.2015 13:02

вот решение моей задачи, вдруг кому-то пригодится:

data.flag=2
for (var i in data.INF_NEW) {
for (var j in data.INF_NEW[i])
{
for (var c in data.INF_NEW[i][j])
{
if (data.INF_NEW[i][j][c].Number==data.Email) {
data.test=data.INF_NEW[i][j][c].Number
data.flag=1
alert(data.test);
break;
}
}
}
}


Часовой пояс GMT +3, время: 08:21.