我有一个包含未知层数和类型(数组,对象,字符串)的对象,这里是一个例子:
var data = {
ffs: false,
customer: {
customer_id: 1544248,
z_cx_id: '123456',
},
selected_items: {
'3600196': [{
id: 4122652,
name: 'Essential Large (up to 8\'x10\')',
selected: true
}]
},
service_partner: {
id: 3486,
name: 'Some String',
street: '1234 King St.',
},
subject: 'Project-2810191 - Orange Juice Stain (Rug)',
description: 'Product Type: \n\nIssue: (copy/paste service request details here)\n\nAction Required:',
}
我需要使用普通的JavaScript循环遍历每个属性,并对每个包含单引号的字符串进行清理以将其替换为''(用于在PostGres查询中使用),我使用以下代码进行更改:
val = val.replace(/'/g, "''");
我可以通过循环该对象并使用以下代码将它们显示出来,虽然这可能不是最好的解决方案:
function iterObj(obj) {
for (var key in obj) {
console.log(key + ': ' + obj[key]);
if (obj[key] !== null && typeof obj[key] === "object") {
// Recurse into children
iterObj(obj[key]);
}
}
}
iterObj(data);
问题在于我不知道如何实际进行清理部分并更新原始数据数组,因为这是在循环中进行的。我发现有很多人提出了类似的问题,但是无法完全将他们的答案用于我的情况。
感激任何帮助。
8\'x10\'
应该变成8\"x10\"
吗? - KevBot