Javascript 查找是否已经存在,JS和Lodash

Javascript 查找是否已经存在,JS和Lodash,javascript,lodash,Javascript,Lodash,因此,我有一个有趣的问题,我不知道如何遵循,我需要使用lodash搜索对象中的两个数组,查看x是否已经存在,让我们看看控制台输出: 我感兴趣的有两个键:questChains和singleQuests,我想用lodash编写两个独立的函数:在对象数组中找到id x,其中questChainsquestChainID等于x 第二个函数是:在对象数组中找到一个任务,其中singleQuestsquestTitle等于y 如果我们举个例子,你可以看到,questChainId是一个1,所以如果我把1

因此,我有一个有趣的问题,我不知道如何遵循,我需要使用lodash搜索对象中的两个数组,查看x是否已经存在,让我们看看控制台输出:

我感兴趣的有两个键:
questChains
singleQuests
,我想用lodash编写两个独立的函数:在对象数组中找到id x,其中
questChains
questChainID
等于x

第二个函数是:在对象数组中找到一个任务,其中
singleQuests
questTitle
等于y

如果我们举个例子,你可以看到,
questChainId
是一个
1
,所以如果我把1传递给所说的函数,我会得到
true
,我实际上并不关心对象本身,否则我会得到false

singleQuests
也是如此,如果我传入
hello
(不区分大小写),我会返回
true
,因为有一个任务的
questTitle
为“hello”。再说一次,我不在乎物体回来

我写这篇文章的方式如下:

_.find(theArray, function(questObject){
    _.find(questObject.questChains, function(questChain){
         if (questChain.questChainId === 1) {
             return true;
         }
    });
});
这只是为了比较任务链id。这看起来太乱了,为什么?因为我在筑巢寻找洛达斯,我也在筑巢如果。读起来有点难


这是唯一的办法吗?或者有更好的方法吗?

是的,可以更简单地表达

试着这样做:

var示例数组=[{
任务链:[{
questChainId:1,
姓名:“富”
}, {
任务号:2,
名称:“酒吧”
}],
单一任务:[{
任务名称:“你好,世界”
}]
}, {
任务链:[{
任务编号:77,
名称:“卡帕”
}]
}];
var结果=U8;.chain(exampleArray)
.拔毛(‘任务链’)
.flatte()
.findWhere({questChainId:2})
.value();
console.log('result',result)

由于您选择提供数据的屏幕截图而不是可执行版本,因此您得到的任何答案都可能未经测试。您最好提供一个
JSON.stringify
版本的数据,或者一个手工制作的最小示例。未经测试很好,我只是想了解一下如何处理这个问题的一般概念@阿马丹