碎片时间学编程「82]:从末尾删除列表元素直到满足条件

从数组末尾删除元素,直到传递的函数返回true。返回移除的元素。

...使用展开运算符 ( ) 和 Array.prototype.reverse() 创建数组的反向副本。

循环遍历反向副本,使用for...of循环Array.prototype.entries()直到函数返回的值是真为止。

使用 Array.prototype.slice() 返回删除的元素。

回调函数fn接受一个参数,该参数是元素的值。

const takeRightUntil = (arr, fn) => {

  for (const [i, val] of [...arr].reverse().entries())

    if (fn(val)) return i === 0 ? [] : arr.slice(-i);

  return arr;

};

示例:

takeRightUntil([1,2,3,4],n=>n<3);// [3, 4]

更多内容请访问我的网站:https://www.icoderoad.com

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容