分享一个JS递归遍历数组和对象,并替换指定字符的函数
工作需要,有一个JS对象中可能包含一个或多个字符串'dbServerDate',而且位置不定,我需要将它替换为另一个符号,例如db.serverDate()(微信小程序云函数的服务器时间)。可见db.serverDate()的个值使用JSON.parse+JSON.stringify是对报错的,所以自己写了一个递归来实现替换,分享一下代码。也欢迎各位指教。
// 递归遍历并替换指定值
funForIn(data) {
for (let i in data) {
if (Object.prototype.toString.call(data) === '' || Object.prototype.toString.call(data) === '') {
that.funForIn(data)
} else {
if (data == 'dbServerDate') {
data = db.serverDate()
}
}
}
},
// 调用
const data = {
name: 'playCloud',
data: {
doWhat: 'add',
collection: 'staff',
data: {
field1: 'field1val',
field2: 123,
field3: {
test3: 'test33',
test333: 666666666,
time: 'dbServerDate'
},
field4: ['aa', 321, 'bb', 'dbServerDate'],
field5: true,
field6: {
"type": "Point",
"coordinates":
},
field7: 'dbServerDate'
}
}
}
that.funForIn(data)
console.log(data) 厉害学习了。
页:
[1]