從數(shù)組末尾刪除元素炒瘟,直到傳遞的函數(shù)返回true。返回移除的元素第步。
...使用展開運算符 ( ) 和 Array.prototype.reverse() 創(chuàng)建數(shù)組的反向副本唧领。
循環(huán)遍歷反向副本,使用for...of循環(huán)Array.prototype.entries()直到函數(shù)返回的值是真為止雌续。
使用 Array.prototype.slice() 返回刪除的元素。
回調(diào)函數(shù)fn接受一個參數(shù)胯杭,該參數(shù)是元素的值驯杜。
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]
更多內(nèi)容請訪問我的網(wǎng)站:https://www.icoderoad.com