如何编写一个采用值数组并返回对象JavaScript的函数?
假设,我们需要编写一个函数classifyArray(),该函数接受一个包含混合数据类型的数组,并返回一个Map()按其数据类型分组的元素。
例如-
// if the input array is:
const arr = ['class', 2, [7, 8, 9], {"name": "Michael"}, Symbol('foo'),
true, false, 'name', 6];
//那么输出Map应该是:
Map(5) {
'string' => [ 'class', 'name' ],
'number' => [ 2, 6 ],
'object' => [ [ 7, 8, 9 ], { name: 'Michael' } ],
'symbol' => [ Symbol(foo) ],
'boolean' => [ true, false ]
}现在让我们编写此函数的代码-
示例
const arr = ['class', 2, [7, 8, 9], {"name": "Michael"}, Symbol('foo'),
true, false, 'name', 6];
const classifyArray = arr => {
return arr.reduce((acc, val) => {
const previousData = acc.get(typeof val);
if(previousData){
acc.set(typeof val, [...previousData, val]);
}else{
acc.set(typeof val, [val]);
};
return acc;
}, new Map());
};
console.log(classifyArray(arr));输出结果
控制台中的输出将为-
Map(5) {
'string' => [ 'class', 'name' ],
'number' => [ 2, 6 ],
'object' => [ [ 7, 8, 9 ], { name: 'Michael' } ],
'symbol' => [ Symbol(foo) ],
'boolean' => [ true, false ]
}热门推荐
4 入学校简短祝福语
10 盛夏的温馨祝福语简短
11 毕业英语祝福语大全简短
12 档案调动孩子祝福语简短
13 爱小姨文案祝福语简短
14 上级买车祝福语大全简短
15 祝贺新婚祝福语古代简短
16 妈妈生日贺卡祝福语 简短
17 送水杯祝福语女生简短
18 送给同桌的祝福语简短