2019-06-20
描述
对数组中的元素从左到右依次进行移除,直到使用的函数返回 true
时则停止移除。最终返回被移除的元素。
提示
- 对数组进行循环
- 使用
for...of
来对Array.prototype.entries()
进行循环 - 当函数返回
true
时就进行返回 - 使用
Array.prototype.slice()
返回移除的元素
代码
const takeWhile = (arr, func) => {
for (const [i, val] of arr.entries())
if (func(val))
return arr.slice(0, i);
return arr;
};
示例
遇到大于等于 3 的元素就停止移除:
takeWhile([1, 2, 3, 4], n => n >= 3); // [1, 2]