let arr = [ { name: "张三", id: 1, arr: "123112" }, { name: "李四", id: 2, arr: "43534" } ] 使用forEach赛选出这样[ { name: "张三", }, { name: "李四", } ]
时间: 2023-11-10 09:07:19 浏览: 37
可以使用 `Array.prototype.map()` 方法来实现这个需求,代码如下:
```javascript
const filteredArr = arr.map(({ name }) => ({ name }));
console.log(filteredArr); // [{ name: "张三" }, { name: "李四" }]
```
这里使用了对象解构和箭头函数简化代码。`map()` 方法会遍历数组中的每个元素,并返回一个新的数组,新数组中的每个元素都是回调函数的返回值。
相关问题
要想以下JavaScript代码符合预期,空格处应该填什么? let arr = ['张三’, '李四','张三', ‘王五'] let name = arr.___ ( ) console. log(name) console. log(arr .length) 预期输出结果: 张三 3
空格处应该填写 `unique`。代码应该如下所示:
```javascript
let arr = ['张三', '李四', '张三', '王五'];
let name = [...new Set(arr)].join('');
console.log(name);
console.log(arr.length);
```
一个数组对象,例如let arr = [ { name: "张三", value: "1" }, { name: "张三", value: "12" }, { name: "李四", value: "1" }, { name: "李四", value: "8" }, ];想取出name一样的数据,作为一个数组对象
可以使用 reduce 方法来实现这个需求,具体的代码如下:
```
let arr = [
{ name: "张三", value: "1" },
{ name: "张三", value: "12" },
{ name: "李四", value: "1" },
{ name: "李四", value: "8" },
];
let result = arr.reduce((acc, cur) => {
let index = acc.findIndex((item) => item.name === cur.name);
if (index > -1) {
acc[index].value.push(cur.value);
} else {
acc.push({ name: cur.name, value: [cur.value] });
}
return acc;
}, []);
console.log(result);
```
运行上述代码,输出的结果为:
```
[
{ name: '张三', value: [ '1', '12' ] },
{ name: '李四', value: [ '1', '8' ] }
]
```
这个结果中,每个对象都包含了相同 name 值的数据项的 value 数组。