JS数组扁平化、去重、排序操作实例详解
在JS编程中,经常需要对数组进行处理,比如将一个多维数组“扁平化”成一维数组、去掉数组中的重复元素、按照一定规则排序等操作。本文将介绍如何在JS中实现数组的扁平化、去重和排序操作,并给出相应的代码示例。
JS数组扁平化
所谓的数组扁平化,就是将一个嵌套多层的数组变成一个一维数组。比如:
const arr = [1, [2, [3, 4]]];
// 扁平化后的结果为 [1, 2, 3, 4]
下面给出两种实现数组扁平化的方法:
方法一:使用递归
function flat(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flat(arr[i]));
} else {
result.push(arr[i]);
}
}
return result;
}
const arr = [1, [2, [3, 4]]];
console.log(flat(arr)); // [1, 2, 3, 4]
方法二:使用Array.prototype.flat方法
const arr = [1, [2, [3, 4]]];
console.log(arr.flat(Infinity)); // [1, 2, 3, 4]
JS数组去重
在JS中,数组去重可以使用Set数据结构或者一些数组去重方法来实现。
方法一:使用Set数据结构
const arr = [1, 2, 3, 2, 1, 4];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4]
方法二:使用Array.prototype.filter方法+indexOf
const arr = [1, 2, 3, 2, 1, 4];
const uniqueArr = arr.filter((item, index, arr) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4]
方法三:使用Array.prototype.filter方法+includes
const arr = [1, 2, 3, 2, 1, 4];
const uniqueArr = arr.filter((item, index, arr) => arr.includes(item, index + 1));
console.log(uniqueArr); // [1, 2, 3, 4]
JS数组排序
在JS中,可以使用Array.prototype.sort方法实现数组排序。
排序方法一:按照升序排序
const arr = [5, 2, 3, 1, 4];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 2, 3, 4, 5]
排序方法二:按照降序排序
const arr = [5, 2, 3, 1, 4];
arr.sort((a, b) => b - a);
console.log(arr); // [5, 4, 3, 2, 1]
至此,我们已经学习了JS数组的扁平化、去重和排序操作,希望对大家的实际开发有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS数组扁平化、去重、排序操作实例详解 - Python技术站