JavaScript 実務レベルの課題 CSVから読み込んだデータの加工
課題
CSVからユーザーデータを読み込んだデータがあります。
[
['id', 'name', 'gender'],
[101, 'たみぼうず', 'male'],
[102, 'ひとちゃん', 'female'],
[103, 'ぼっち', 'male'],
];
このデータを以下のように加工したいです。
[{
gender: "male",
id: 101,
name: "たみぼうず"
}, {
gender: "female",
id: 102,
name: "ひとちゃん"
}, {
gender: "male",
id: 103,
name: "ぼっち"
}]
問題を小さくする
元のデータにはCSVのヘッダーが含まれています。
['id', 'name', 'gender']
この部分と、その後の配列(データ部分)を分離する必要があります。
その後、データ部分をmap関数で加工します。
実装例
const users = [
['id', 'name', 'gender'],
[101, 'たみぼうず', 'male'],
[102, 'ひとちゃん', 'female'],
[103, 'ぼっち', 'male'],
];
const convertUsers = users => {
// ヘッダーとデータ部分の分離
const [headers, ...data] = users;
// データ部分の加工処理
return data.map(d => {
const parsedData = {};
for(const [index, header] of headers.entries()){
parsedData[header] = d[index];
}
return parsedData;
});
};
const result = convertUsers(users);
console.log(result);
最近のコメント