js去除二维数组中的空数组
时间: 2023-12-20 12:55:42 浏览: 142
可以使用数组的 filter() 方法,判断每一个子数组是否为空,如果不为空则返回,最后返回过滤后的新数组。下面是示例代码:
```javascript
const arr = [[1,2], [], [3], [], [4,5,6], []];
const newArr = arr.filter(subArr => subArr.length > 0);
console.log(newArr); // 输出 [[1,2], [3], [4,5,6]]
```
希望能帮到你!
相关问题
js 对二维数组进行去重,并返回重复值
在 JavaScript 中,如果你想要对二维数组进行去重并找出重复的值,可以采用以下几种方法:
1. **利用Set和JSON.stringify**:首先将二维数组转换为JSON字符串,Set会自动去除重复元素,然后再次解析回数组,剩下的就是唯一的一维数组。通过比较一维数组长度与原二维数组长度,差值即为重复的值。示例:
```javascript
function deduplicateAndFindDuplicates(arr) {
let uniqueArr = JSON.parse(JSON.stringify(arr).replace(/,/g, '","').slice(1, -1)); // 去除重复
let duplicates = arr.length - uniqueArr.length;
return duplicates > 0 ? uniqueArr : null; // 返回重复的值
}
let arr = [[1, 2], [2, 3], [4, 5], [1, 2]];
console.log(deduplicateAndFindDuplicates(arr));
```
2. **使用Map存储计数**:遍历二维数组,将每个子数组作为键存入Map,值为计数。之后再遍历Map,找出计数大于1的子数组,它们就是重复的。
```javascript
function findDuplicates(arr) {
let map = new Map();
for (let sub of arr) {
if (!map.has(sub)) map.set(sub, 1);
else map.set(sub, map.get(sub) + 1);
}
let duplicates = [];
for (let [sub, count] of map.entries()) {
if (count > 1) duplicates.push(sub);
}
return duplicates;
}
let arr = [[1, 2], [2, 3], [4, 5], [1, 2]];
console.log(findDuplicates(arr));
```
lodash二维数组根据id去重
Lodash是一个JavaScript实用工具库,它提供了一系列便捷的操作数组、对象等数据结构的功能。如果你想要从二维数组中根据某个键(比如id)去除重复项,你可以使用`_.uniqBy`函数,它可以对每个子数组应用指定的键进行去重。
例如,假设你有一个二维数组 `arr`,其中每个子数组都有一个'id'键:
```javascript
const _ = require('lodash');
const arr = [
[{ id: '1' }, { id: '2' }],
[{ id: '3' }],
[{ id: '2' }, { id: '4' }]
];
// 使用Lodash的uniqBy函数按id去重
const uniqueArr = _.uniqBy(arr, function(item) {
return item[0].id; // 如果id总是在第一个元素,可以直接取item[0].id
});
console.log(uniqueArr);
```
这将会返回一个新的二维数组,其中所有的子数组都是唯一的,基于它们的'id'值:
```json
[
[{ id: '1' }, { id: '2' }],
[{ id: '3' }],
[{ id: '4' }]
]
```
阅读全文