迁移旧AngularJS项目:如何将slice过滤器重写为纯JavaScript函数?
迁移AngularJS slice过滤器为纯JavaScript函数
原AngularJS的slice过滤器逻辑很明确:接收数组、起始索引和切片长度,返回从起始位置开始对应长度的子数组,同时兼容了数组为空的边界情况。直接转成纯JS函数的话,完全可以保留原有逻辑,去掉Angular的过滤器包装即可:
function slice(arr, start, length) { const endIndex = start + length; return (arr || []).slice(start, endIndex); }
说明
- 保留了原过滤器的核心逻辑:如果传入的
arr是null或undefined,自动用空数组兜底,避免调用slice方法报错 - 把原代码里的逗号表达式拆成了更易读的变量声明,逻辑和原过滤器完全一致
- 调用方式简单直接,不需要依赖任何框架环境
使用示例
// 正常数组切片 const demoArr = [1, 2, 3, 4, 5]; const slicedArr = slice(demoArr, 2, 2); console.log(slicedArr); // 输出 [3, 4] // 处理空值输入 const emptySliced = slice(null, 0, 3); console.log(emptySliced); // 输出 []
内容的提问来源于stack exchange,提问作者Prats
相关产品推荐
相关产品推荐

