排除 Reduce Function 问题
最后更新于
最后更新于
在本页面
reduce
function 是一个 JavaScript function,它在操作期间“减少”到单个 object 与特定 key 关联的所有值。 reduce
function 必须满足各种要求。本教程有助于验证reduce
function 是否符合以下条件:
reduce
function 必须_retject 一个 object,其类型必须与map
function 发出的value
的类型相同。
valuesArray
中元素的 order 不应影响reduce
function 的输出。
reduce
function 必须是幂等的。
有关reduce
function 的所有要求的列表,请参阅或 shell 辅助方法。
您可以测试reduce
function 返回的 value 与map
function 发出的 value 的类型相同。
定义一个reduceFunction1
function,它接受 arguments keyCustId
和valuesPrices
。 valuesPrices
是整数的 array:
定义 sample array 整数:
使用myTestValues
调用reduceFunction1
:
验证reduceFunction1
返回 integer:
定义一个reduceFunction2
function,它接受 arguments keySKU
和valuesCountObjects
。 valuesCountObjects
是包含两个字段count
和qty
的 array 文档:
定义 sample array 文档:
使用myTestObjects
调用reduceFunction2
:
验证reduceFunction2
返回的文档中包含count
和qty
字段:
reduce
function 以key
和values
array 为参数。您可以测试reduce
function 的结果不依赖于values
array 中元素的 order。
定义 sample values1
array 和 sample values2
array,它们只在 array 元素的 order 中有所不同:
定义一个reduceFunction2
function,它接受 arguments keySKU
和valuesCountObjects
。 valuesCountObjects
是包含两个字段count
和qty
的 array 文档:
先使用values1
然后使用values2
调用reduceFunction2
:
验证reduceFunction2
返回相同的结果:
因为 map-reduce 操作可能会为同一个 key 多次调用reduce
,并且不会为工作集中的 key 的单个实例调用reduce
,reduce
function 必须 return 与从该值发出的 value 相同类型的 value。 map
function。您可以测试reduce
function process“减少”值而不影响最终的 value。
定义一个reduceFunction2
function,它接受 arguments keySKU
和valuesCountObjects
。 valuesCountObjects
是包含两个字段count
和qty
的 array 文档:
定义 sample key:
定义 sample valuesIdempotent
array,其中包含一个调用reduceFunction2
function 的元素:
定义一个 sample values1
array,它结合了传递给reduceFunction2
的值:
首先使用myKey
和valuesIdempotent
调用reduceFunction2
,然后使用myKey
和values1
调用reduceFunction2
:
验证reduceFunction2
返回相同的结果:
译者:李冠飞
校对: