有這樣的需求:
一個(gè)成員為對(duì)象的數(shù)組蜂奸,轉(zhuǎn)成一個(gè)類似json結(jié)構(gòu)的字符串。
// 將數(shù)組轉(zhuǎn)換成字符串 a為數(shù)組纪隙!
arrayToString(a) {
// 最左邊的'['
let str = "[";
// 數(shù)組有i個(gè)元素
for(let i = 0; i < a.length; i++) {
// 獲取到index為i的元素,用obj來暫時(shí)存放
let obj = a[i];
// 獲取到這個(gè)元素的所有屬性名(比如例子的"id"掂碱、"name")
let keys = Object.keys(obj);
// 每個(gè)對(duì)象最左邊的'{'
str = str + "{";
// 遍歷屬性
for(let j = 0; j < keys.length; j++) {
// 如果是最后一個(gè)屬性了躏敢,不應(yīng)該有‘,’商佛,其他都應(yīng)該有喉钢,比如:
// 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]] +"\"" + ","
}
}
// 最后一個(gè)元素了姆打,就應(yīng)該有‘]’,不是的話是‘,’
if(i === a.length-1) {
str = str + "}]";
} else {
str = str + "},";
}
}
return str;
},
實(shí)際例子如下:
// 數(shù)組
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"}]'