vue数据.map过滤返回数组
时间: 2024-05-09 09:20:05 浏览: 97
假设有如下数据:
```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`。
相关问题
uniapp vue如何过滤数组得到指定的参数
你可以使用 JavaScript 中的 `Array.prototype.filter()` 方法来过滤数组,然后使用 `Array.prototype.map()` 方法来从过滤后的数组中提取指定的参数。
例如,假设你有一个如下所示的数组 `items`,其中包含多个对象,每个对象都有一个 `name` 和 `age` 属性:
```javascript
const items = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
```
现在,如果你想提取所有对象的 `name` 属性并存储在新的数组 `names` 中,可以使用以下代码:
```javascript
const names = items.filter(item => item.age > 28).map(item => item.name);
```
在上面的代码中,`Array.prototype.filter()` 方法过滤出所有 `age` 大于 28 的对象,然后 `Array.prototype.map()` 方法从过滤后的数组中提取 `name` 属性,存储在新的数组 `names` 中。
注意:在实际项目中,你需要根据具体需求编写过滤条件和提取规则。
vue,js:去重 数组中数组属性值一样的去重
在Vue.js中,如果你想要对数组进行去重操作,并且基于某个数组元素的属性值来进行判断,可以使用JavaScript的map()、filter()和reduce()函数结合。这里有一个简单的示例:
```javascript
let arr = [
{ id: 1, name: 'John' },
{ id: 2, name: 'John' },
{ id: 3, name: 'Jane' },
{ id: 4, name: 'Jane' }
];
// 定义要去重的属性名
const keyToUnique = 'name';
// 使用filter()和reduce()去重
let uniqueArr = arr.filter((item, index, self) => {
return self.findIndex(i => i[keyToUnique] === item[keyToUnique]) === index;
});
console.log(uniqueArr);
```
在这个例子中,我们首先选择了`keyToUnique`属性作为去重依据,然后使用filter()过滤出每个元素第一次出现的情况,reduce()则用于迭代整个数组并返回结果。
阅读全文