【问题标题】:how to convert user input of string to object in javascript如何将用户输入的字符串转换为javascript中的对象
【发布时间】:2018-04-24 11:02:25
【问题描述】:

如何将用户输入的字符串转换为对象 假设我有字符串数组

["code:213123", "code:213123", "code:213123"]

如何将其转换为 obj 数组 所以结果应该是这样的:

[{code: "213123"},...]

【问题讨论】:

  • input 在哪里,预期的输入是什么以及您尝试添加新条目的源代码在哪里?
  • Stackoverflow 不是免费的代码编写服务或 “如何” 教程服务。您应该展示自己尝试解决的问题
  • 我在 react.js 上工作,输入是

标签: javascript arrays


【解决方案1】:

new Functioneval 可以这样转换:

let params = '["code:213123", "code:213123", "code:213123"]';
params = new Function(`return JSON.parse(JSON.stringify(${params}));`)();

【讨论】:

    【解决方案2】:

    根据您的问题,假设用户严格按照code: x code: y code: z 作为字符串格式输入文本,您可以执行以下操作:

    `code: 2a31sdd23
    code: asdw12ds3
    code: 213sad123`
    .replace(/[\r\n]*/g,'')
    .replace(/code:\s+/g,'')
    .replace(/[\s\t]+/g,' ')
    .split(' ')
    .reduce((p,c) => {p.push({code: c}); return p}, [])
    
    // Output
    // [{code: "2a31sdd23"}, {code: "asdw12ds3"}, {code: "213sad123"}]
    

    【讨论】:

    • 很好,但输入是每个代码后的新行:2a31sdd23
    • 在您的代码中将其作为一个元素0: code: "2a31sdd23↵asdw12ds3↵213sad123"
    • 在这种情况下,您需要在现有的 replace 之前删除换行符。试试:`.replace(/[\r\n]*/g,'').replace(/code:\s+/g,'')
    • 同样给我一个参数。 0: {code: "code:123123code:123123code:123123"}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2020-12-30
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    相关资源
    最近更新 更多