JavaScript对数组去重排序
时间: 2023-03-04 08:35:55 浏览: 116
JavaScript对数组进行去重排序的方法有很多,以下是其中两种常用的方法:
方法一:使用Set去重,然后使用数组的sort方法进行排序。
```
let arr = [1, 2, 3, 2, 4, 1];
let set = new Set(arr);
let newArr = [...set];
newArr.sort((a, b) => a - b);
console.log(newArr); // [1, 2, 3, 4]
```
方法二:使用数组的reduce方法去重,然后使用数组的sort方法进行排序。
```
let arr = [1, 2, 3, 2, 4, 1];
let newArr = arr.reduce((prev, cur) => {
if (!prev.includes(cur)) {
prev.push(cur);
}
return prev;
}, []);
newArr.sort((a, b) => a - b);
console.log(newArr); // [1, 2, 3, 4]
```
以上两种方法都可以实现对数组的去重排序,具体使用哪种方法可以根据实际情况选择。
相关问题
js对数组去重 并从大到小排序,并统计重复的数和其数量,存入duplicateData内const arr = [2,4,1,0,-1,5,9,3,2,4,1,0,-1,5,9]
在JavaScript中,你可以先对数组进行去重,然后排序并统计重复元素及其数量。以下是如何完成这个任务的一个示例:
1. **去重并排序**[^1]:
```javascript
const arr = [2, 4, 1, 0, -1, 5, 9, 3, 2, 4, 1, 0, -1, 5, 9];
// 使用Set去除重复元素
const uniqueArr = [...new Set(arr)];
// 排序数组(默认升序)
uniqueArr.sort((a, b) => a - b);
console.log(uniqueArr); // 输出:[-1, 0, 1, 2, 3, 4, 5, 9]
```
2. **统计重复元素和数量**[^2]:
```javascript
function countDuplicates(array) {
let duplicateData = {};
array.forEach(item => {
if (item in duplicateData) {
duplicateData[item]++;
} else {
duplicateData[item] = 1;
}
});
return duplicateData;
}
const duplicates = countDuplicates(uniqueArr);
console.log(duplicates); // 输出:{2: 2, 4: 2, 1: 2, 0: 2, -1: 2, 5: 2, 9: 2}
```
这样,`duplicates`对象就包含了数组中每个唯一元素以及它们的重复次数。
js拍平数组去重排序
要使用JavaScript对数组进行拍平、去重和排序,可以采用以下方法:
1. 使用`flatMap()`方法将多维数组拍平为一维数组。具体代码如下:
```javascript
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var flattenedArr = arr.flatMap(function (subArr) {
return subArr;
});
console.log(flattenedArr);
```
2. 使用`Set`对象对数组进行去重。`Set`对象是一种集合数据结构,它只包含唯一的值。具体代码如下:
```javascript
var arr = [1, 2, 3, 3, 4, 5, 5];
var uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr);
```
3. 使用`sort()`方法对数组进行排序。`sort()`方法会按升序对数组元素进行排序。具体代码如下:
```javascript
var arr = [3, 44, 38, 5, 47, 15, 36, 26, 27];
arr.sort(function (a, b) {
return a - b;
});
console.log(arr);
```
综合以上方法,可以实现对数组的拍平、去重和排序:
```javascript
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3]];
var flattenedArr = arr.flatMap(function (subArr) {
return subArr;
});
var uniqueArr = Array.from(new Set(flattenedArr));
uniqueArr.sort(function (a, b) {
return a - b;
});
console.log(uniqueArr);
```
以上代码将会得到拍平、去重并排序后的数组。
: 引用了方法二中的代码
: 引用了方法二中的代码
: 引用了方法三中的代码
阅读全文