2019-04-20
描述
从数组末尾依次移除元素,直到函数返回 true
。最终返回数组中剩下的元素。
提示
- 通过 while 倒叙遍历数组
- 使用
Array.prototype.slice()
删除数组中的最后一个元素直到来自函数的返回值为true
- 返回剩余的数组
代码
const dropRightWhile = (arr, func) => {
while (arr.length > 0 && !func(arr[arr.length - 1])) arr = arr.slice(0, -1);
return arr;
};
示例
从右边依次移除数组中大于等于 3 的值,直到遇见小于 3 的元素:
dropRightWhile([1, 2, 3, 4], n => n < 3); // [1, 2]