目录
数组去重
/**
* 去除数组中的重复项。
* @param {Array} array 要去重的数组。
* @returns {Array} 去重后的数组。
*/
function uniqueArray(array) {
return [...new Set(array)];
}
数组快速排序
/**
* 对数组进行快速排序。
* @param {Array} array 要排序的数组。
* @returns {Array} 排序后的数组。
*/
function quickSort(array) {
if (array.length <= 1) return array;
const pivot = array.shift();
return [
...quickSort(array.filter(x => x < pivot)),
pivot,
...quickSort(array.filter(x => x >= pivot))
];
}
过滤数组
/**
* 过滤符合条件的数组元素。
* @param {Array} array 原始数组。
* @param {Function} predicate 过滤条件函数。
* @returns {Array} 过滤后的数组。
*/
function filterArray(array, predicate) {
return array.filter(predicate);
}
映射数组
/**
* 对数组每个元素应用一个函数并返回新的数组。
* @param {Array} array 原始数组。
* @param {Function} mapper 映射函数。
* @returns {Array} 映射后的数组。
*/
function mapArray(array, mapper) {
return array.map(mapper);
}
数组扁平化
/**
* 将多维数组扁平化为一维数组。
* @param {Array} array 多维数组。
* @returns {Array} 扁平化后的数组。
*/
function flattenArray(array) {
return array.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenArray(val)) : acc.concat(val), []);
}
数组求和
/**
* 计算数组所有元素的和。
* @param {Array<number>} array 数字数组。
* @returns {number} 数组元素之和。
*/
function sumArray(array) {
return array.reduce((a, b) => a + b, 0);
}
数组最大值
/**
* 获取数组中的最大值。
* @param {Array<number>} array 数字数组。
* @returns {number} 数组中的最大值。
*/
function maxInArray(array) {
return Math.max(...array);
}
数组最小值
/**
* 获取数组中的最小值。
* @param {Array<number>} array 数字数组。
* @returns {number} 数组中的最小值。
*/
function minInArray(array) {
return Math.min(...array);
}
数组切片
/**
* 获取数组的一部分。
* @param {Array} array 原始数组。
* @param {number} start 开始索引。
* @param {number} [end] 结束索引,默认为数组长度。
* @returns {Array} 切片后的数组。
*/
function sliceArray(array, start, end = array.length) {
return array.slice(start, end);
}
数组乱序(洗牌算法)
/**
* 随机打乱数组顺序。
* @param {Array} array 要乱序的数组。
* @returns {Array} 乱序后的数组。
*/
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
标签:function,封装,数组,param,returns,集锦,Array,array
From: https://blog.csdn.net/weixin_43298211/article/details/139445091