优化策略
- 转换为数组:由于类数组对象(如
arguments
)没有数组的所有方法,将其转换为真正的数组可以使用数组的高效方法。可以使用Array.from()
或扩展运算符 ...
进行转换。
- 高效遍历:使用
for...of
循环遍历数组,相比传统for
循环,for...of
语法更简洁,且在遍历可迭代对象时性能较好。
- 筛选参数:使用
filter()
方法,它会创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
- 修改参数:使用
map()
方法,它会创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
代码示例
function optimizeArgs() {
// 将arguments转换为数组
const argsArray = Array.from(arguments);
// 或者使用扩展运算符
// const argsArray = [...arguments];
// 高效遍历
for (const arg of argsArray) {
console.log(arg);
}
// 筛选参数
const filteredArgs = argsArray.filter(arg => typeof arg === 'number');
// 修改参数
const modifiedArgs = argsArray.map(arg => {
if (typeof arg ==='string') {
return arg.toUpperCase();
}
return arg;
});
return {
filteredArgs,
modifiedArgs
};
}
// 调用函数并传入不定数量参数
const result = optimizeArgs(1, 'hello', 2, 'world');
console.log(result.filteredArgs);
console.log(result.modifiedArgs);