试着编写一段程序,把数组[{name:'张三',age:12},{name:'李四',age:6},{name:'王五',age:12}]按照age分组
时间: 2023-08-31 19:24:08 浏览: 247
### 回答1:
var arr = [{name:'张三',age:12},{name:'李四',age:6},{name:'王五',age:12}];
var groupByAge = {};arr.forEach(function(item) {
// 如果age组不存在,则创建一个
if (!groupByAge[item.age]) {
groupByAge[item.age] = [];
}
// 把当前的name放入对应的age组
groupByAge[item.age].push(item.name);
});// 输出结果
console.log(groupByAge);
### 回答2:
可以通过编写一个函数来实现将数组按照age分组的功能。具体代码如下:
```javascript
function groupByAge(arr) {
let result = {};
for (let i = 0; i < arr.length; i++) {
let age = arr[i].age;
if (!result[age]) {
result[age] = [];
}
result[age].push(arr[i]);
}
return result;
}
let arr = [
{ name: '张三', age: 12 },
{ name: '李四', age: 6 },
{ name: '王五', age: 12 }
];
let grouped = groupByAge(arr);
console.log(grouped);
```
上述代码中,我们定义了一个名为`groupByAge()`的函数,该函数接受一个数组作为参数,然后通过遍历数组中的每个对象,根据其`age`属性进行分组。使用一个空对象`result`来保存分组结果,以`age`作为属性名,对应的数据为属性值,如果在`result`中不存在该`age`属性,则将其初始化为空数组。然后将每个对象添加到对应的`age`属性值所对应的数组中。
最后通过调用`groupByAge(arr)`将给定的数组进行分组,并将结果保存在`grouped`变量中,最后将结果输出到控制台中。
运行上述代码,输出的结果为:
```javascript
{
6: [ { name: '李四', age: 6 } ],
12: [
{ name: '张三', age: 12 },
{ name: '王五', age: 12 }
]
}
```
该结果表示将给定数组按照`age`属性分组后的结果,其中`6`表示`age`为6的对象只有一个,而`12`表示`age`为12的对象有两个。
### 回答3:
可以使用JavaScript编写一个函数来实现该功能:
```javascript
function groupByAge(arr) {
let result = {};
for (let i = 0; i < arr.length; i++) {
let age = arr[i].age;
if (result[age]) {
result[age].push(arr[i]);
} else {
result[age] = [arr[i]];
}
}
return result;
}
let arr = [
{ name: '张三', age: 12 },
{ name: '李四', age: 6 },
{ name: '王五', age: 12 }
];
let grouped = groupByAge(arr);
console.log(grouped);
```
上述代码中,`groupByAge`函数接受一个数组作为参数,将按照`age`属性进行分组,并返回分组后的结果。我们使用一个`result`对象来存储每个年龄对应的人员,然后遍历数组,将每个人员按照年龄添加到对应的数组中。
最后,我们将数组`[{name:'张三',age:12},{name:'李四',age:6},{name:'王五',age:12}]`传入该函数中,返回的结果是一个对象`{6: [{ name: '李四', age: 6 }], 12: [{ name: '张三', age: 12 },{ name: '王五', age: 12 }]}`,其中`6`和`12`是年龄,后面的数组是对应年龄的人员列表。
阅读全文