Neo4j:如何将数组元素与前一个元素相加?

时间:2019-06-26 13:24:56

标签: arrays xcode function neo4j cypher

我正在将Cypher与Neo4j结合使用,我需要将每个数组元素与先前元素之间的总和相加。

使用以下示例:

[1,2,3,4,5]

我会得到以下结果:

[1,3,6,10,15]

我正在尝试这种方式:

[i in range(0,size(array)-1) | array[i]+array[i-1]]

但是它不起作用。 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您的查询仅计算原始数组中两个元素(当前元素和先前元素)的总和。

您需要的是所有先前元素的总和,为此,您需要首先获取所有先前元素(包括当前元素)的列表,然后将所有元素求和。

要计算所有元素的总和,可以使用reduce function

您可以按以下方式修改查询:

WITH [1,2,3,4,5] as array
WITH [i IN range(0,size(array)-1) | reduce(total=0, num IN array[0..i+1] | total + num) ] AS new_array
RETURN new_array