美文网首页JavaScript
将对象数组转换成字符串格式

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

作者: Lia代码猪崽 | 来源:发表于2017-12-08 15:32 被阅读1次

    有这样的需求:
    一个成员为对象的数组,转成一个类似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"}]'
    

    相关文章

      网友评论

        本文标题:将对象数组转换成字符串格式

        本文链接:https://www.haomeiwen.com/subject/okmeixtx.html