如何编写一个函数,该函数接受一个值数组并返回一个 JavaScript 对象?
javascriptweb developmentobject oriented programming更新于 2025/10/12 18:52:17
假设,我们需要编写一个函数 classifyArray(),该函数接受一个包含混合数据类型的数组并返回一个 Map(),其中元素按其数据类型分组。
例如 −
// 如果输入数组为:
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 ]
}
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

