我有这样的实体集合:
var entities = [
{
location: null,
label: 'xyz'
},
{
location: {
city: 'city'
},
label: 'xyz'
}
{
label: 'xyz'
}
];
尝试过滤出位置= null
,undefined
或根本不存在的实体。使用lodash。
以这种方式测试第一个实体的位置时,它会返回正确答案true
:
_.isNil(_(entities[0]).get('location'));
但是当我尝试在链中包含isNil时,它会返回Cannot read property 'valueOf' of null
错误:
_(entities[0]).get('location').isNil
可以在lodash链中以某种方式包含isNil吗?
问题在于:https://codepen.io/neptune01/pen/qjxJwr
我需要以某种方式使用它:
_(entities).omitBy(_.get('location').isNil)
或
_(entities).omitBy(_(entity).get('location').isNil)
答案 0 :(得分:1)
import json
list1 = ['ABC', 'DEF']
list2 = ['ABCabc', 'DEFdef']
output = {'foobar': []}
for a in list1:
for b in list2:
if b.startswith(a):
output['foobar'].append({a: b})
continue
open('index.json', 'w').write(json.dumps(output))
不可链接。
查看非强制性方法的完整列表 here 。
您可以像这样使用它,以解决您的特定问题:
isNil()
_.omitBy(entities, (el) => _.isNil(el.location))

var entities = [{
location: null,
label: 'xyz'
},
{
location: {
city: 'city'
},
label: 'xyz'
}
];
console.log(_.omitBy(entities, (el) => _.isNil(el.location)));