2019-06-19
描述
对数组中的元素从右侧开始进行移除,如果使用的函数返回 true
则不移除。最终返回被移除的元素。
提示
- 从头开始对数组进行循环
- 使用
Array.prototype.reduceRight()
来累计那些函数返回假值的元素
代码
const takeRightWhile = (arr, func) =>
arr.reduceRight((acc, el) => (func(el) ? acc : [el, ...acc]), []);
示例
从尾部开始移除大于 2 的元素:
takeRightWhile([1, 2, 3, 4], n => n < 3); // [3, 4]