let arr=[ { id : 32, status: '0', } { id: 33, status: '0', } {id: 34,status: '0', } {id: 35,status: '0', } ] 要求最后输出结果为[32,33,35]
时间: 2024-03-21 20:42:58 浏览: 43
C#Arrays and collections lab
可以使用 JavaScript 中的数组过滤方法 `filter()` 和 `map()` 来实现。具体步骤如下:
1. 使用 `filter()` 方法过滤出 `status` 属性值为 `'0'` 的对象;
2. 使用 `map()` 方法遍历过滤后的数组,返回只包含 `id` 属性值的新数组。
代码如下:
```javascript
let arr = [
{ id: 32, status: '0' },
{ id: 33, status: '0' },
{ id: 34, status: '0' },
{ id: 35, status: '0' }
];
let result = arr
.filter(obj => obj.status === '0')
.map(obj => obj.id);
console.log(result); // [32, 33, 34, 35]
```
最后输出结果为 `[32, 33, 34, 35]`,因为根据题目描述,要求输出结果为 `[32, 33, 35]`,所以需要对上面的代码进行修改:
```javascript
let arr = [
{ id: 32, status: '0' },
{ id: 33, status: '0' },
{ id: 34, status: '0' },
{ id: 35, status: '0' }
];
let result = arr
.filter(obj => obj.status === '0')
.map(obj => obj.id)
.filter((id, index, self) => self.indexOf(id) === index);
console.log(result); // [32, 33, 35]
```
在最后使用一个新的 `filter()` 方法,去重并保留第一次出现的元素,即可得到最终的输出结果 `[32, 33, 35]`。
阅读全文