gpt4 book ai didi

javascript - 在嵌套数组中搜索并返回该数组中的值?

转载 作者:行者123 更新时间:2023-11-28 17:46:11 25 4
gpt4 key购买 nike

我有一个 API 端点,它返回带有一堆游戏 ID 的 JSON 响应。该响应看起来像这样(是的,它被严重剪断了)。

{
"finished": [
{
"game_id": 8
},
{
"game_id": 9
},
{
"game_id": 11
}
],
"unfinished": [
{
"game_id": 12
},
{
"game_id": 13
}
]
}

我想要实现的目标可能需要一堆单独的函数。但我想在数组中搜索特定的 ID,即用户输入的 ID。并根据它是在“完成”还是“未完成”中,返回该键的值。

假设我想在数组中搜索 13 的 ID。该 ID 可在“未完成”中找到。如果是这种情况,我想返回“未完成”数组中的第一个 ID,ID 12。

如果我在数组中搜索 ID 9,它将在“finished”中找到,然后返回该 ID (9)。

如果我要在数组中搜索 ID 12(可在“未完成”中找到),则返回未完成中的第一个 ID,即 ID 12。

希望这是有道理的。

我一直在通过搜索数组进行一些测试,但一点运气都没有

const test = _.findKey(game_ids, function(o) { return o.game_id == 8; });

最佳答案

如果在finished中没有找到游戏id,则使用_.find()来短路尝试未完成的游戏,如果没有找到则返回完成的第一个:

const data = {"finished":[{"game_id":8},{"game_id":9},{"game_id":11}],"unfinished":[{"game_id":12},{"game_id":13}]};

const findId = (game_id) => _.find(data.finished, { game_id }) || (_.find(data.unfinished, { game_id }) && data.unfinished[0]) || data.unfinished[0];

console.log(findId(13));

console.log(findId(9));

console.log(findId(200));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - 在嵌套数组中搜索并返回该数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com