在es6

时间:2018-06-18 06:12:08

标签: javascript split

如何转换以下字符串输入 name: xyz friend: abc mobile: 123 分成一个数组,将它分隔成这样的东西 [{key:"name", value:"xyz"}]

我已尝试过此代码进行拆分

let friend1 = 
'name:xyz 
friend:abc 
mobile_no:123'
let Array=friend1.split(" ");
console.log(Array)`

需要key and value部分的帮助。

2 个答案:

答案 0 :(得分:1)

试试这个:

  1. 要删除碰撞冒号+空格对:,我将其替换为####
  2. 然后将数组拆分为其余的空格
  3. 对于每个拆分,在这种情况下为name####xyzfriend####abcmobile####123,将它们拆分为####并构建所需对象
  4. let string = "name: xyz friend: abc mobile: 123";
    let array  = string
      .replace(/:\s/g, '####')
      .split(' ')
      .map(pair => {
    
        let split = pair.split('####');
        return { key: split[0], value: split[1] };
    
      });
      
    console.log(array)

答案 1 :(得分:1)

如果输入本身是一个数组,那么这将进行对象(字典)转换

var targetDictionary = {};
var string = ["name: xyz", "friend: abc", "mobile: 123"];
for (var i = 0; i < string.length; i++) {
    var split = string[i].split(':');
    targetDictionary[split[0]] = split[1];
}