我经常研究一些 JavaScript
面试问题,突然我看到一个关于 reduce
排序函数的用法的问题 Array
,我在 MDN 中阅读了它的用法它在一些 medium
文章中,但是排序 Array
是如此创新:
const arr = [91,4,6,24,8,7,59,3,13,0,11,98,54,23,52,87,4];
我想了很多,但我不知道如何回答这个问题, reduce
call back
函数必须如何? reduce
函数的 initialValue
是什么?什么是 accumulator
call back
reduce
currentValue
最后,这种方式是否比其他排序算法有一些好处?或者对改进其他算法有用吗?
原文由 AmerllicA 发布,翻译遵循 CC BY-SA 4.0 许可协议
在这里使用 reduce 没有意义,但是您可以使用一个新数组作为累加器并对所有元素进行插入排序:
这是 没有 减少的版本:
现在编写 reducer 的一些一般技巧:
您要么采用累加器的方法,然后 reducer 应根据当前元素对累加器应用修改并将其返回:
或者,如果累加器和元素具有相同的类型并且在逻辑上相等,则无需区分它们:
你应该问自己 “当它应用于空数组时应该减少什么?”
如果您想将数组的值归结为 _一个单一的值或对象_。