【问题标题】:Javascript: Creating a custom object from stringJavascript:从字符串创建自定义对象
【发布时间】:2018-09-07 10:14:16
【问题描述】:

我有一串逗号分隔的值。如下:

var myValues = "Ip1, Ip2, Ip3";

我想将其转换为自定义对象。结果应该是:

 {
  Input: 'Ip1',
  Output: 'Ip1_Updated'    
 },
 { 
  Input: 'Ip2',
  Output: 'Ip2_Updated'
 },
 { 
  Input: 'Ip3',
  Output: 'Ip3_Updated'
 }

解决此问题的最佳方法是什么。 我可以拆分“,”然后遍历字符串并创建自定义数组

【问题讨论】:

  • 为什么不先尝试一下你的想法(拆分为“,”,然后循环)?
  • 我可以在 "," 上拆分,然后遍历字符串并创建自定义数组。是的,你可以。

标签: javascript


【解决方案1】:

你可以拆分然后使用函数map

var myValues = "Ip1, Ip2, Ip3",
    result = myValues.split(",").map(s => ({ Input: s.trim(), Output: `${s.trim()}_Updated` }));
 
 console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

另一种选择是准备数据,然后转换为所需的结构:

var myValues = "Ip1, Ip2, Ip3",
    split = myValues.split(","),
    preparedData = split.map(str => str.trim()),
    result = preparedData.map(ip => ({ Input: ip, Output: `${ip}_Updated` }));
 
 console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

  • 使用额外的地图步骤来修剪东西会更干净:.split(',').map(x => trim...).map(...)
  • @georg 两个循环?
  • @Ele 我还有一个与此映射 json 相关的问题。如果你能看到这个将不胜感激:stackoverflow.com/questions/49556448/…
【解决方案2】:

您可以使用split()map()

var myValues = "Ip1, Ip2, Ip3";
myValues = myValues.split(',').map(function(i){
  return {Input: i.trim(), Output: i.trim() + '_Updated'};
});

console.log(myValues);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    相关资源
    最近更新 更多