一个数组过滤掉undefined和空的数据
时间: 2023-05-18 15:03:20 浏览: 100
可以使用JavaScript中的filter方法来过滤掉undefined和空的数据,示例代码如下:
```
const arr = [1, undefined, null, '', 2, 3, undefined];
const filteredArr = arr.filter(item => item !== undefined && item !== null && item !== '');
console.log(filteredArr); // [1, 2, 3]
```
这段代码会将数组中的undefined和空字符串过滤掉,返回一个新的数组[1, 2, 3]。
相关问题
vue数据.map过滤返回数组
假设有如下数据:
```javascript
const data = [
{ id: 1, name: '张三', age: 20 },
{ id: 2, name: '李四', age: 25 },
{ id: 3, name: '王五', age: 30 }
]
```
可以使用 `map` 方法过滤并返回一个新数组:
```javascript
const filteredData = data.map(item => {
if (item.age > 20) {
return {
id: item.id,
name: item.name
}
}
})
```
上述代码中,使用 `map` 方法遍历原数组 `data`,并根据条件过滤出符合条件的项,返回一个新的数组 `filteredData`。在过滤的过程中,使用 `if` 语句判断当前项的年龄是否大于 20,如果是,则返回一个新的对象,包含 `id` 和 `name` 字段,否则返回 `undefined`,不会被加入新数组中。最终得到的 `filteredData` 数组如下所示:
```javascript
[
undefined,
{ id: 2, name: '李四' },
{ id: 3, name: '王五' }
]
```
由于原数组的第一项年龄小于 20,所以对应的项在新数组中是 `undefined`。
js中使用数组的方法循环一个数组,根据条件得到一个新数组
在JavaScript中,你可以使用`Array.prototype.map()`、`filter()`或`reduce()`方法结合循环来根据特定条件创建一个新的数组。这里是一个基本的例子:
```javascript
// 假设我们有一个包含学生信息的数组,每个对象有name和age属性
let students = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 22 },
{ name: 'Charlie', age: 18 }
];
// 使用map()方法,如果年龄大于18,则返回新的数组
let adultsOnly = students.map(student => {
if (student.age > 18) {
return student;
} else {
// 或者如果你想过滤掉不符合条件的对象,可以返回undefined
// 这样map会自动忽略它
return undefined;
}
});
// 使用filter()方法达到同样的效果
adultsOnly = students.filter(student => student.age > 18);
// 使用reduce()方法,如果你需要累加符合条件的数据
let sumOfAdultAges = students.reduce((total, student) => {
if (student.age > 18) {
total += student.age;
}
return total;
}, 0);
阅读全文