使用 JavaScript 中的对象来封装常用的数组方法,并将该对象作为模块暴露出去,例如:
const arrayUtils = {
// 获取数组中的最大值
getMaxValue: (arr) => Math.max(...arr),
// 获取数组中的最小值
getMinValue: (arr) => Math.min(...arr),
// 数组求和
sum: (arr) => arr.reduce((acc, val) => acc + val, 0),
// 数组平均值
average: (arr) => arr.reduce((acc, val) => acc + val, 0) / arr.length,
// 数组去重
unique: (arr) => [...new Set(arr)],
// 数组排序,默认升序
sort: (arr, order = 'asc') => {
if (order === 'asc') {
return arr.sort((a, b) => a - b);
} else if (order === 'desc') {
return arr.sort((a, b) => b - a);
}
return arr;
},
// 数组过滤,返回符合条件的元素组成的新数组
filter: (arr, callback) => arr.filter(callback),
// 数组映射,返回对应的新数组
map: (arr, callback) => arr.map(callback)
};
module.exports = arrayUtils;
使用时可以按如下方式引入并调用相应的方法:
const arrayUtils = require('./arrayUtils.js');
const arr = [1, 2, 3, 4, 5];
console.log(arrayUtils.getMaxValue(arr)); // 输出:5
console.log(arrayUtils.getMinValue(arr)); // 输出:1
console.log(arrayUtils.sum(arr)); // 输出:15
console.log(arrayUtils.average(arr)); // 输出:3
console.log(arrayUtils.unique([1, 2, 2, 3, 3, 3])); // 输出:[1, 2, 3]
console.log(arrayUtils.sort(arr)); // 输出:[1, 2, 3, 4, 5]
console.log(arrayUtils.sort(arr, 'desc')); // 输出:[5, 4, 3, 2, 1]
console.log(arrayUtils.filter(arr, (item) => item > 2)); // 输出:[3, 4, 5]
console.log(arrayUtils.map(arr, (item) => item * 2)); // 输出:[2, 4, 6, 8, 10]