JavaScript

将对象数组转换成字符串格式

2017-12-08  本文已影响1人  Lia代码猪崽

有这样的需求:
一个成员为对象的数组,转成一个类似json结构的字符串。

// 将数组转换成字符串 a为数组!
arrayToString(a) {
   // 最左边的'[' 
   let str = "[";
  // 数组有i个元素
   for(let i = 0; i < a.length; i++) {
          // 获取到index为i的元素,用obj来暂时存放 
          let obj = a[i];
          // 获取到这个元素的所有属性名(比如例子的"id"、"name")
          let keys = Object.keys(obj);
          //  每个对象最左边的'{'
          str = str + "{";
          // 遍历属性
          for(let j = 0; j < keys.length; j++) {
              // 如果是最后一个属性了,不应该有‘,’,其他都应该有,比如:
              // str =  '[{id:"1",' + 'name'  + ':' + '\"' + 'aa' + '\"'
              //  所以str为 [{id:"1",name:"aa"}
              if(j === keys.length-1) {
                str = str + keys[j] + ":" + "\"" + obj[keys[j]] +"\""
              } else {
                str = str + keys[j] + ":" +"\"" +obj[keys[j]] +"\"" + ","
              }
          }
         // 最后一个元素了,就应该有‘]’,不是的话是‘,’
          if(i === a.length-1) {
            str = str + "}]";
          } else {
            str = str + "},";
          }
   }
   return str;
},

实际例子如下:

// 数组
const a = [
  {
    id: '1',
    name: 'aa'
  },
  {
    id: '2',
    name: 'bb'
  },
{
    id: '3',
    name: 'cc',
    special: 'hahaha'
  }
];

// 字符串
let jsonStr = arrayToString(a);
//'[{id:"1",name:"aa"},{id:"2",name:"bb"},{id:"3",name:"cc",special: "hahaha"}]'
上一篇下一篇

猜你喜欢

热点阅读