Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แปลงสตริงพิเศษเป็นอาร์เรย์ Object - JavaScript

แปลงสตริงรูปแบบพิเศษ (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 }
]