Javascript 将对象转换为字符串
我正在尝试将对象转换为库Javascript 将对象转换为字符串,javascript,string,object,Javascript,String,Object,我正在尝试将对象转换为库toString()函数的普通JavaScript字符串。 所需的输出如下所示 var obj = {a: 1, b:2, c:"string"} function toString(ins) { if(typeof ins === "object" && ins.length === undefined) { var str = ""; //convert to string return str;
toString()
函数的普通JavaScript字符串。所需的输出如下所示
var obj = {a: 1, b:2, c:"string"}
function toString(ins) {
if(typeof ins === "object" && ins.length === undefined) {
var str = "";
//convert to string
return str;
}
}
toString(obj)
//should return "a:1, b:2, c:string"
<>我试着看,但是找不到合适的答案。
正如我在我的评论中所说的,你最好考虑使用<代码> JSON。StrugI化(OBJ)和修改你的代码来使用那个行业标准函数,即使它不能产生你所要求的精确输出。
如果你真的想要你想要的,并且想自己做,那么你可以这样做:var obj = {a: 1, b:2, c:"string"}
function toString(ins) {
if(typeof ins === "object" && ins.length === undefined) {
var pieces = [];
for (var prop in ins) {
if (ins.hasOwnProperty(prop)) {
pieces.push(prop + ":" + ins[prop]);
}
}
return pieces.join(", ");
}
}
toString(obj);
工作演示:
警告:这不处理嵌套对象。您可能希望使用递归算法来处理嵌套对象。您可能希望了解
JSON.stringify(obj)
的作用,因为它处理嵌套对象,并且是一种行业标准格式。它并不是您想要的输出(在几个不同的地方引用),但它内置于所有现代浏览器中,因此您可能希望从中开始JSON.parse(str)
是解析的反向过程。或者代替peices和for循环,str.replace(/“/g,”)
和str.replace(/,/g,”,”)
,等等。@Wyatt-我猜你的意思是先做JSON.stringify()
,然后再做.replace()
内部引号。这是一个选项,但实际值中的任何双引号字符都会有问题。这可能比我写的更复杂,但要正确删除不需要的双引号,我会执行类似于str.replace(/{/g,”);str.replace(/“:/g,:”)的操作
@Wyatt-如果你认为这是最好的答案,请随意发布你自己的问题的答案。我对这个想法做了一点修改,并确定不容易涵盖所有可能存在于字符串值中的内容,而你不需要.replace()
在获取所有其他对象时产生影响,因此我可能不会朝那个方向走。一旦我完全完成了算法,我会这样做,但现在我会继续工作。此外,获取任何对象深度的函数也会用于嵌套对象的循环。