Javascript 查找是否已经存在,JS和Lodash
因此,我有一个有趣的问题,我不知道如何遵循,我需要使用lodash搜索对象中的两个数组,查看x是否已经存在,让我们看看控制台输出: 我感兴趣的有两个键:Javascript 查找是否已经存在,JS和Lodash,javascript,lodash,Javascript,Lodash,因此,我有一个有趣的问题,我不知道如何遵循,我需要使用lodash搜索对象中的两个数组,查看x是否已经存在,让我们看看控制台输出: 我感兴趣的有两个键:questChains和singleQuests,我想用lodash编写两个独立的函数:在对象数组中找到id x,其中questChainsquestChainID等于x 第二个函数是:在对象数组中找到一个任务,其中singleQuestsquestTitle等于y 如果我们举个例子,你可以看到,questChainId是一个1,所以如果我把1
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
版本的数据,或者一个手工制作的最小示例。未经测试很好,我只是想了解一下如何处理这个问题的一般概念@阿马丹