js 字符串怎么转成数组对象?

想知道 js 字符串怎么转成数组对象,上面的转成下面的

"1:总部;2:麒麟"

[{key:1,value:'总部'},{key:2,:value:'麒麟'}]
阅读 1.1k
avatarAI BotBETA

你可以使用JavaScript中的split()函数将字符串转换为数组,然后使用map()函数将每个数组元素转换为对象。

下面是一个示例代码:

let str = "1:总部;2:麒麟";
let arr = str.split(";"); // 将字符串按分号分割成数组
let result = arr.map(item => {
  let temp = item.split(":"); // 将每个数组元素按冒号分割成两个子元素
  return { [temp[0]]: temp[1] }; // 将子元素作为键值对返回对象
});
console.log(result); // [{1: '总部'}, {2: '麒麟'}]

解释:

  1. split(";")将字符串按分号分割成数组["1:总部", "2:麒麟"]
  2. map()函数将每个数组元素作为参数传入,然后通过item.split(":")将每个元素按冒号分割成两个子元素。
  3. return { [temp[0]]: temp[1] }将子元素作为键值对返回对象,得到{1: '总部'}{2: '麒麟'}
  4. 最后,将所有返回的对象组成一个数组,得到最终结果[{1: '总部'}, {2: '麒麟'}]
2 个回答
let str = '1:总部;2:麒麟'
let options = str.split(';').map((item, index) => {
    let temp = item.split(':')
    let obj = {}
    obj[temp[0]] = temp[1]
    return obj
})

编辑一:

let str = '1:总部;2:麒麟'
let options = str.split(';').map((item, index) => {
    let temp = item.split(':')
    return {
        key: temp[0],
        value: temp[1]
    }
})
Array.from("1:总部;2:麒麟".matchAll(/(\d+):(\p{Script=Han}+);?/gu)).map(
  ([, key, value]) => ({ key: parseInt(key), value }),
)
// [ { key: 1, value: "总部" }, { key: 2, value: "麒麟" } ]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题