我有一个要搜索以找到匹配结果的对象数组。目前我正在使用lodash,我的查询如下:
let toPush = _.findIndex(result, {itemNumber: queryArray[j][0]})
我想编辑 predicate 以搜索多个属性,但使用or predicate ,因此看起来像:
let toPush = _.findIndex(result, {itemNumber: queryArray[j][0] || listings.urlId : queryArray[j][0]})
如何将or运算符与lodash一起使用?
我不一定需要使用lodash vs vanilla js,也不需要使用索引,它可以返回整个对象。
编辑
这就是我最终的结果:
let toPush = _.findIndex(result, {listings: [{urlId: queryArray[j][0]}]}) > -1
? _.findIndex(result, {listings: [{urlId: queryArray[j][0]}]})
:_.findIndex(result, {itemNumber:queryArray[j][0]}) > -1
? _.findIndex(result, {itemNumber:queryArray[j][0]})
: _.findIndex(result, {productIdentifiers: [{productIdentifier: queryArray[j][0]}]}) > -1
? _.findIndex(result, {productIdentifiers: [{productIdentifier: queryArray[j][0]}]})
: -1
如果有人能想出更好的办法,我将不胜感激。根据到目前为止的答案,我还没能让其他任何东西起作用。
谢谢
3条答案
按热度按时间pw9qyyiw1#
您可以将comparator函数作为第二个参数传递,在该参数中可以放置您想要的任何逻辑:
这实际上与vanilla js完全相同:
pengsaosao2#
我将使用的模式的可运行代码段:
当然,你需要更换
[3,5]
使用您希望检查的值。kyks70gy3#
负荷灰法
n、 请注意
find
如果未找到任何内容,Function将返回undefinedes16方法
n、 b.像lodash一样
find
作用ES find
如果未找到任何内容,也将返回undefined。