假如我们有一个对象数组array,现在我们想按类别category来区分老师和学生
let array = [
{category: "teacher", name: "Mr.Li", age: 40},
{category: "teacher", name: "Mr.Wang", age: 20},
{category: "student", name: "Xiao Ming",age: 12},
{category: "student", name: "Xiao Hua", age: 20}
]
函数classifiedAccordingToKey可以解决这个问题,它需要两个参数,第一个是一个对象数组,第二个是用来分组的key值。
function classifiedAccordingToKey(objectArray,key){
var newObj = {};
objectArray.forEach(function (obj) {
var array = newObj[obj[key]] || [];
array.push(obj);
newObj[obj[key]] = array;
});
return newObj;
}
现在我们来使用,定义一个新的变量,将array数组和key传给函数,然后我们打印看看结果
let viewGroup = classifiedAccordingToKey(array,'category')
console.log("我是分类过的结果,是一个object:")
console.log(viewGroup)
console.log("你可以查看此object的所有key:")
console.log(Object.keys(viewGroup));
console.log("你可以查看此object的所有value:")
console.log(Object.values(viewGroup));
当然也可以按照年龄分类,代码和结果如下:
let viewGroup = classifiedAccordingToKey(array,'age')
- END -