【发布时间】:2019-08-22 17:41:26
【问题描述】:
我正在寻找一种普通的 javascript 解决方案来使用一个或多个条件来查找对象。
理想情况下,我想使用与 lodash.find 类似的语法和一个可以接受一个或多个条件的可重用函数:
_.find(products, {code:"BLK")
_.find(products, {code:"BLK", sale: false})
就我而言,我正在寻找一个对象,所以我更喜欢find 而不是filter。
const products = [
{
title: "Shirt",
color: "Black",
code: "BLK",
sale: true
},
{
title: "Better Shirt",
color: "Black",
code: "BLK",
sale: false
},
{
title: "Blue Shirt",
color: "Blue",
code: "BLU",
sale: false
}
]
// Lodash find using multiple conditions
console.log(_.find(products, {code:"BLK", sale: false}))
// Find all using one condition
console.log(products.filter(product => product.color === 'Black'))
// Find single with multiple conditions
console.log(products.find(product => product.color === 'Black' && product.sale === false ))
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>
如何在简单的原生 js 中从 lodash 模拟 _.find 的功能?
【问题讨论】:
-
看看lodash源代码?
-
我理解了这个问题并有了答案。有人可以再打开这个吗?
-
以下是要点答案:gist.github.com/SephReed/82eb00e44075576d4f778bfd71817c76 为什么将问题标记为“不清楚”会使其无法回答?如果有人能回答,那显然就够清楚了。
标签: javascript