通过分割字符串将字符串转换为对象

时间:2019-09-20 12:36:47

标签: javascript arrays split

我需要将完整的字符串转换为数组,对象组合。 例子

let string = {'user-0-residences-0-pincode': 678987};

// Expecting output will be
{
  user: [
    {
      residences: [
        {
          pincode: 678987
        }]
    }]
}

3 个答案:

答案 0 :(得分:0)

目前尚不清楚您在做什么,但似乎您正在使用“ -0-”作为分隔符。像这样工作。

let string = {'user-0-residences-0-pincode': 678987};
let result = []
for (str in string) {
    result.push(str.split('-0-'))
}

答案 1 :(得分:0)

  

//预期输出为{用户:[       {         住所:[           {             密码:678987           }]       }]

您的结果看起来不正确...

我认为您想解析一个字符串:"user-0-residences-0-pincode-678987"

您可以这样做:

var string = "user-0-residences-0-pincode-678987";
var arr = string.split("-");
var result = {};
for (var i = 0; i < arr.length; i+=2) {
	result[arr[i]] = arr[i + 1];
}
console.log(result);

答案 2 :(得分:0)

根据您的要求,您可以尝试以下代码

 let string = { "user-0-residences-0-pincode": 678987 };
  let output = null, temp;
  Object.keys(string)[0]
    .split("-0-")
    .reverse()
    .forEach(val => {
      if (output === null) {
        output = {};
        output[val] = Object.values(string)[0];
      } else {
        temp = [];
        temp.push(output);
        output = {}
        output[val] = temp;
      }
    });
    console.log(output);