簡體   English   中英

將字符串轉換為對象數組:JS

[英]Convert String into Array of Objects: JS

我有以下字符串:

const str = "Tuba|203488|Music Theory|301071"

我想將它轉換為一個對象數組,如下所示:

[
{specialty: "Tuba",
userid:203488},
{specialty: "Music Theory",
userid:301071}
]

我如何在 javascript 中執行此操作?

您可以將字符串拆分為 pipe,然后遍歷結果數組,遞增 2,將 object 添加到最終結果數組:

 const str = "Tuba|203488|Music Theory|301071" const result = []; const arr = str.split("|"); for (let i = 0; i < arr.length; i+=2) { result.push({ specialty: arr[i], userId: arr[i+1] }); } console.log(result);

你可以這樣做:

function createArrayFromString(str) {
  const strArray = str.split("|")
  let results = []

  for (let i=0; i<strArray.length; i+=2) {
    results.push(
      {
        speciality: strArray[i],
        userid: strArray[i+1]
      }
    )
  }
  return results
}

const str = "Tuba|203488|Music Theory|301071"
console.log(createArrayFromString(str))
// [
//   { speciality: 'Tuba', userid: '203488' },
//   { speciality: 'Music Theory', userid: '301071' }
// ]

這是做出這些假設的解決方案:

  • 輸入字符串中的值由|分隔
  • 值是一組兩個,第一個是specialty (字符串值),第二個是userid (數字值)
  • 結果應該是格式對象數組: [{ specialty: String, userid: Number }]

該解決方案首先將輸入字符串拆分為| ,然后使用.reduce()構建生成的對象數組:

 const str = "Tuba|203488|Music Theory|301071"; let result = str.split('|').reduce((acc, val, idx, arr) => { if(idx % 2) { acc.push({ specialty: arr[idx - 1], userid: Number(val) }); } return acc; }, []); console.log(result);

Output:

[
  {
    "specialty": "Tuba",
    "userid": 203488
  },
  {
    "specialty": "Music Theory",
    "userid": 301071
  }
]

這是你如何做到的。

 const str = "Tuba|203488|Music Theory|301071"; const splitStringArray = str.split("|"); console.log("Split", splitStringArray); const finalObject = []; for (let index = 0; index < splitStringArray.length; index += 2) { finalObject.push({ Speciality: splitStringArray[index], UserId: splitStringArray[finalObject + 1], }); } console.log("Final Object", finalObject);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM