[英]Find a value in an array of populated objects mongdb - lodash
也许这个问题是重复的或以不同的方式问了几次,但仍然没有解决我的问题。 我正在创建从mongodb返回10,000个填充对象的nodejs api。 我想根据对象过滤数组。
{color: red}
我如何使用lodash过滤器返回包含指定过滤器对象的数组。
[
{
"value": 200,
"newEle": {
"gradient": "true",
"mode": {
"color": "red"
}
}
},
{
"value": 100,
"newEle": {
"gradient": "false",
"mode": {
"color": "blue"
}
}
}
]
如果您专门尝试仅按颜色进行过滤,则可以使用香草JS的.filter()
将所有具有red
的color
属性的对象放入新数组中:
const arr = [ { "value": 200, "newEle": { "gradient": "true", "mode": { "color": "red" } } }, { "value": 100, "newEle": { "gradient": "false", "mode": { "color": "blue" } } } ], color = "red", res = arr.filter(obj => obj.newEle.mode.color === color); console.log(res);
如果您想专门使用lodash
,可以使用_.filter()
:
const arr = [ { "value": 200, "newEle": { "gradient": "true", "mode": { "color": "red" } } }, { "value": 100, "newEle": { "gradient": "false", "mode": { "color": "blue" } } } ], color = "red", res = _.filter(arr, obj => obj.newEle.mode.color === color); console.log(res);
<script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>
使用lodash时,就这么简单。
let filtered_array = _.filter(myArr, { color: 'red' });
但是,由于您嵌套了嵌套对象,因此您需要创建一个访问嵌套值的谓词。 您可以使用数组来执行此操作。
let filtered_array = _.filter(myArr, ['newEle.mode.color', 'red']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.