使用地图(几个地图在嵌套的json中获取必要的元素)功能,我试图根据所需模板从Neo4j数据库获取输出。在最后一张地图中,我正在构建所需输出的一部分,并将其存储在内部变量中:
px.segments.map(function(pathSegment){
individual_path.push({
"start": pathSegment.start.properties.name,
"weight": pathSegment.relationship.properties.Weight.low,
"end": pathSegment.end.properties.name});
})
然后,根据我在执行DB和Cypher查询时所拥有的内容,在某些情况下,我在执行时会得到:
console.log(individual_path);
我得到类似的东西
[ { start: 'title', weight: 39, end: 'metadata' } ]
[ { start: 'title', weight: 39, end: 'metadata' } ]
[ { start: 'title', weight: 39, end: 'metadata' } ]
[ { start: 'title', weight: 39, end: 'metadata' },
{ start: 'metadata', weight: 39, end: 'filmID' } ]
[ { start: 'title', weight: 39, end: 'metadata' },
{ start: 'metadata', weight: 39, end: 'filmID' } ]
[]
[ { start: 'movieID', weight: 39, end: 'moviesSchema' } ]
[ { start: 'movieID', weight: 39, end: 'moviesSchema' },
{ start: 'moviesSchema', weight: 39, end: 'title' } ]
[ { start: 'movieID', weight: 39, end: 'moviesSchema' },
{ start: 'moviesSchema', weight: 39, end: 'title' },
{ start: 'title', weight: 39, end: 'metadata' } ]
我的目标是避免在输出内部出现空对象,因为我需要完全以以下形式使用它:(开始:,重量:,结束:)。最后,我需要输入类似的内容(无空):
[ { start: 'title', weight: 39, end: 'metadata' } ]
[ { start: 'title', weight: 39, end: 'metadata' } ]
[ { start: 'title', weight: 39, end: 'metadata' } ]
[ { start: 'title', weight: 39, end: 'metadata' },
{ start: 'metadata', weight: 39, end: 'filmID' } ]
[ { start: 'title', weight: 39, end: 'metadata' },
{ start: 'metadata', weight: 39, end: 'filmID' } ]
[ { start: 'movieID', weight: 39, end: 'moviesSchema' } ]
[ { start: 'movieID', weight: 39, end: 'moviesSchema' },
{ start: 'moviesSchema', weight: 39, end: 'title' } ]
[ { start: 'movieID', weight: 39, end: 'moviesSchema' },
{ start: 'moviesSchema', weight: 39, end: 'title' },
{ start: 'title', weight: 39, end: 'metadata' } ]
答案 0 :(得分:1)
您可以通过检查对象是否不为空来过滤数组
let array = [{},{},{ start: 'title', weight: 39, end: 'metadata' },{ start: 'title', weight: 39, end: 'metadata' },{ start: 'title', weight: 39, end: 'metadata' },{ start: 'title', weight: 39, end: 'metadata' },{},{}];
array = array.filter(obj => Object.entries(obj).length !== 0 );
console.log(array);
但是在问题中,您有一个空数组[]
,我想将其删除,然后再删除。
if (individual_path.length){
console.log(individual_path);
}
答案 1 :(得分:0)
忽略此答案-不正确
您可以在filter
数组上使用individual_path
。
var newObject = individual_path.filter(item => item.length > 0);
这将获得所有非“空”的物品。
请注意,这要求individual_path
是一个数组数组。