我有一个未知数量的级别和类型(数组、对象、字符串)的对象,这是一个示例:
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);
问题是我不知道如何实际执行清理部分并更新原始数据数组,因为这是循环进行的。
我发现很多人都在问类似的问题,但他们的答案并不能完全适用于我的情况。
任何帮助表示赞赏。
原文由 Mankind1023 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以检查一个对象并再次调用递归。