如何編寫一個函式來接收一個值陣列,並返回一個物件 JavaScript?
比如,我們需要寫一個函式 classifyArray(),輸入一個包含混合資料型別的陣列,並返回一個 Map(),其中元素按其資料型別分組。
例如−
// if the input array is:
const arr = ['class', 2, [7, 8, 9], {"name": "Michael"}, Symbol('foo'),
true, false, 'name', 6];
// then the output Map should be:
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 ]
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP