Итак, у меня есть многомерный массив в jquery, я пытаюсь проверить, существует ли определенный элемент в моем массиве;если это так, то он должен вернуть имя или код основного родителя (ID), в котором был найден элемент.
Вот мой массив:
$(document).ready(function(){
var arrytst =[
{
code:"10",
name:"Ten",
subAc:[
{
ref:"10.1",
acnm:"Ten-one",
sub:[
{
Id:"10.1.1",
actnm:"Ten-one-one"
},
{
Id:"10.1.2",
actnm:"Ten-one-two"
}
]
},
{
ref:"10.2",
acnm:"Ten-two",
sub:[
{
Id:"10.2.1",
actnm:"Ten-two-one"
},
{
Id:"10.2.2",
actnm:"Ten-two-two"
}
]
}
]
},
{
code:"89",
name:"Eight_Nine",
subAc:[
{
ref:"89.1",
acnm:"Eight_Nine-one",
sub:[
{
Id:"89.1.1",
actnm:"Eight_Nine-one-one"
},
{
Id:"89.1.2",
actnm:"Eight_Nine-one-two"
}
]
},
{
ref:"89.2",
acnm:"Eight_Nine-two",
sub:[
{
Id:"89.2.1",
actnm:"Eight_Nine-two-one"
},
{
Id:"89.2.2",
actnm:"Eight_Nine-two-two"
}
]
}
]
}
];
let $lookfor = "10.1" ;
function arrayTest(){
var GetAccountCode,GetAccountName;
$.each(arrytst, function(Acnt_Key, account){
let $AccountCode = account.code,$AccountName = account.name,$SubAccount = account.subAc;
if($AccountCode !== $lookfor){
$.each($SubAccount,function(sbky,sbRf){
let ref =sbRf.ref, subsub =sbRf.sub;
if(subsub !== $lookfor){
$.each(subsub,function(k,sb){
let id =sb.Id;
if(id !== $lookfor){
GetAccountCode={
MainAccountCode: "Sorry",
MainAccountName: "No such data:",
KidElement: $lookfor+" in the array!"
};
return false;
}
else{
GetAccountCode={
MainAccountCode: $AccountCode,
MainAccountName: $AccountName,
KidElement: $lookfor
};
return false;
}
});
}
GetAccountCode={
MainAccountCode: $AccountCode,
MainAccountName: $AccountName,
KidElement: $lookfor
};
return false;
});
}
else{
GetAccountCode={
MainAccountCode: $AccountCode,
MainAccountName: $AccountName,
KidElement: $lookfor
};
return false;
}
});
return GetAccountCode;
}
var arry = arrayTest();
$("#getrslt").append(arry.MainAccountCode+"-----"+arry.MainAccountName+" ---> "+arry.KidElement);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="getrslt"></div>
Я пробовал это, к сожалению, он продолжает возвращать последний основной элемент в моем массиве вместо того, который преследует данные в нем. Как я могу решить эту проблему?