js 复杂数组去重代码
时间: 2023-06-22 19:37:41 浏览: 45
JavaScript中复杂数组去重的代码相对简单,可以使用filter和indexOf方法来实现。以下是一个示例代码:
```javascript
const arr = [
[1, 2],
[1, 2],
[3, 4],
[5, 6],
[5, 6],
[7, 8],
[7, 8],
[9, 10]
];
const uniqueArr = arr.filter((item, index, self) => {
return index === self.findIndex((t) => (
t[0] === item[0] && t[1] === item[1]
));
});
console.log(uniqueArr);
// 输出:[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
```
在上述代码中,我们使用了filter方法来过滤出不重复的项,然后使用findIndex方法来查找当前项在原数组中的第一个索引,如果当前项的索引与原数组中相同项的索引相同,则说明当前项是唯一的,否则就是重复的。
相关问题
数组 复杂去重 代码实例
对于一些复杂的数组结构,如多维数组或对象数组,我们可以使用更加复杂的去重方法。
以下是一些基于多维数组和对象数组的去重方法的代码实例:
1. 多维数组去重
```javascript
let arr = [[1, 2], [2, 3], [1, 2]];
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
let isExist = false;
for (let j = 0; j < uniqueArr.length; j++) {
if (JSON.stringify(uniqueArr[j]) === JSON.stringify(arr[i])) {
isExist = true;
break;
}
}
if (!isExist) {
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [[1, 2], [2, 3]]
```
2. 对象数组去重
```javascript
let arr = [
{ id: 1, name: 'Tom' },
{ id: 2, name: 'Jerry' },
{ id: 1, name: 'Tom' }
];
let uniqueArr = [];
let obj = {};
for (let i = 0; i < arr.length; i++) {
if (!obj[arr[i].id]) {
uniqueArr.push(arr[i]);
obj[arr[i].id] = true;
}
}
console.log(uniqueArr); // [{ id: 1, name: 'Tom' }, { id: 2, name: 'Jerry' }]
```
以上代码实例分别基于多维数组和对象数组实现了去重,当然还有其他的方式可以实现数组的复杂去重,具体取决于具体的场景和需求。
js 数组去重的方法
有几种方法可以实现JavaScript数组去重。其中一种方法是利用ES6的延展运算符和Set数据结构来去重。你可以先创建一个Set对象,然后使用延展运算符将原数组中的元素添加到Set中去重,最后再将Set对象转为数组即可得到去重后的结果。例如,你可以使用以下代码实现数组去重:
```
var arr = [1, 9, 8, 8, 7, 2, 5, 3, 3, 3, 2, 3, 1, 4, 5, 444, 55, 22];
function noRepeat(arr){
var newArr = [...new Set(arr)];
return newArr;
}
var arr2 = noRepeat(arr);
console.log(arr2);
```
另外一种方法是利用filter()方法进行去重。你可以遍历数组,使用filter()方法筛选出数组中没有重复的元素,然后返回筛选后的新数组。下面是一个使用filter()方法进行数组去重的示例代码:
```
var arr = [1, 9, 8, 8, 7, 2, 5, 3, 3, 3, 2, 3, 1, 4, 5, 444, 55, 22];
function noRepeat(arr){
var newArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
return newArr;
}
var arr2 = noRepeat(arr);
console.log(arr2);
```
这样就可以得到去重后的数组。希望这些方法对你有帮助!<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* [js数组去重常见的七种方法](https://blog.csdn.net/Lguorong/article/details/124301325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [基于js+html+css复杂商城页面](https://download.csdn.net/download/qi_ming88/88280158)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]