javascript - 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
我读到你的下面可以用递归函数解决它,但我尝试并没有得到想要的结果。
也许你们可以帮助我:)我会非常感激
解决方案
如果我对您的理解正确,您可以大致执行以下操作:
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"]
希望这可以帮助。
马特
推荐阅读
- javascript - 在 ES6 JavaScript 中,为什么 then() 的实现处理程序返回的 Promise 与 then() 返回的 Promise 不一样?
- linux - pkill 和 killall 命令在 Ubuntu 18 上不起作用
- c++ - 在 dll 中使用内联变量时会出现什么问题?
- arrays - TS 反向布尔排序
- unity3d - Unity 2018 - 2D Sprite - 基于不同枢轴的缩放和旋转基础
- python - matplotlib中plt.plot()的第三个参数是做什么的?
- javascript - TypeError('"listener" 参数必须是函数');
- java - JPA Native Query ConversionFailedException:无法从类型转换
- python - 下面覆盖的 __add__ 方法如何用于 python 中的 sum 函数?
- ios - 通过 Carthage 集成人脸检测会出错