首页 > 解决方案 > JSON 对象的问题(深度搜索)

问题描述

嗨,伙计们,我有一个大问题,我已经尝试解决好几天了。我有一个纠缠的 JSON 对象(http://ddragon.leagueoflegends.com/cdn/9.1.1/data/de_DE/runesReforged.json)例如这个数组,里面有我的 ID。

0: 8214 1: 8112 2: 8005 3: 8010 4: 8112 5: 8359 6: 8437 7: 9923 8: 8112 9: 8021 

我希望借助 json 对象中的这个数组来搜索 id。匹配后,应该返回“icon”的内容,但我不知道如何:(我尝试了很多方法,但没有得到我想要的结果。ID 是在the_json_object[0].slots[0].runes[0].id 我读到你的下面可以用递归函数解决它,但我尝试并没有得到想要的结果。

也许你们可以帮助我:)我会非常感激

标签: javascript

解决方案


如果我对您的理解正确,您可以大致执行以下操作:

var ids = [8214,8112,8005,8010,8112,8359,8437,9923,8112,8021];
var results = [];

ids.map(function(id) {
    results.push({key: id, icon: ''});
});

然后给定您的对象,您可以通过它的子对象进行映射,如下所示:

the_json_object.map(function(item){
    item.slots.map(function(slot){
        slot.runes.map(function(rune){

            if(ids.indexOf(rune.id) != -1) {
                results.map(function(result){
                    if(result.key == rune.id) result.icon = rune.icon;
                });                           
            }

        });     
    });
});

var icons = [];
results.map(function(result){
  icons.push(result.icon);
});

记录图标对象将为您提供一个图标字符串数组,如下所示:

["perk-images/Styles/Domination/Electrocute/Electrocute.png", "perk-images/Styles/Domination/HailOfBlades/HailOfBlades.png", "perk-images/Styles/Inspiration/Kleptomancy/Kleptomancy.png", "perk-images/Styles/Precision/PressTheAttack/PressTheAttack.png", "perk-images/Styles/Precision/FleetFootwork/FleetFootwork.png", "perk-images/Styles/Precision/Conqueror/Conqueror.png", "perk-images/Styles/Resolve/GraspOfTheUndying/GraspOfTheUndying.png", "perk-images/Styles/Sorcery/SummonAery/SummonAery.png"]

希望这可以帮助。

马特


推荐阅读