แปลงสตริงรูปแบบพิเศษ (Key,Value คั่นด้วยคอมมา Object คั่นด้วย Space Row คั่นด้วย \n) เป็นอาร์เรย์ของ Object
รูปแบบ Input
"Integer,1 Float,2.0\nBoolean,True Integer,6\nFloat,3.66 Boolean,False"
ตัวอย่างโค้ด
const stringToArray = str =>
str.split('\n').map(row =>
row.split(' ').map(pair => {
const [key, value] = pair.split(',');
return { [key]: value };
})
);
console.log(stringToArray("Integer,1 Float,2.0\nBoolean,True Integer,6\nFloat,3.66 Boolean,False"));
ผลลัพธ์
[
[ { Integer: '1' }, { Float: '2.0' } ],
[ { Boolean: 'True' }, { Integer: '6' } ],
[ { Float: '3.66' }, { Boolean: 'False' } ]
]
ปรับปรุง: รวมเป็น Object เดียวต่อ Row
const stringToArray = str =>
str.split('\n').map(row =>
row.split(' ').reduce((obj, pair) => {
const [key, value] = pair.split(',');
// แปลงค่า: Number, Boolean
let parsed = value;
if (!isNaN(value)) parsed = +value;
else if (value === 'True') parsed = true;
else if (value === 'False') parsed = false;
obj[key] = parsed;
return obj;
}, {})
);
ผลลัพธ์ที่ปรับปรุง
[
{ Integer: 1, Float: 2.0 },
{ Boolean: true, Integer: 6 },
{ Float: 3.66, Boolean: false }
]