尝试映射两个数组值。一个数组值来自本地 Json 文件,其他数组值来自服务或后端。
本地 JSON:
var localJsonArray = {
"records": {
"cat1": [{
"id": 1234,
"label": "a"
}, {
"id": 2345,
"label": "b"
}],
"cat2": {
"id": 12345,
"label": "c"
}
}
}
后端数组值:
我将来自后端的值存储为:
var backendArray =[0: "1234", 1: "3456", 2:"4567"];
JS:
$.each( localJsonArray, function( key, value ) {
var index = $.inArray( value, backendArray );
if( index != -1 ) {
console.log( index );
}
});
现在如何将本地 Json 的 id 映射到后端 JSON 的 id。如果值匹配,则循环应中断,否则应查找该值。
最佳答案
您无法创建像 var backendArray =[0: "1234", 1: "3456", 2:"4567"]; 这样的数组
顺便说一句......请遵循上面的代码:
var localJsonArray = {
"records": {
"cat1": [{
"id": 1234,
"label": "a"
}, {
"id": 2345,
"label": "b"
}],
"cat2": {
"id": 12345,
"label": "c"
}
}
};
var backendArray =["1234", "3456", "4567"];
$.each( localJsonArray['records'], function( a,b,c ) {
if(!(b.length == undefined)){
for(var i = 0;i < b.length; i++)
{
var index = $.inArray( b[i].id.toString(), backendArray );
if( index != -1 ) {
console.log( index );
}
}
}
else{
var index = $.inArray( b.id.toString(), backendArray );
if( index != -1 ) {
console.log( index );
}
}
});
希望这有帮助! :)
关于javascript - 映射 Json 数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24284564/