[英]Loop through Object and replace values based on Regex in given Array
我有一個 object 和一個數組。 我嘗試遍歷 object 鍵,將它們與數組中的正則表達式進行檢查,然后替換字符串。 到目前為止我所擁有的:
let event = {
"firstKey":"1",
"secondKey": {
"a":"one",
"b":"two",
"c":"three"
},
"id":111934444,
"count":1,
"location":"https://www-domain-org/username=steven&tel=1234",
"title":"lastname=hey",
"sd":"24-bit"
};
let myReg = [
{
name: 'telephone',
reg: /((tel=)|(telephone=))[\d\+\s][^&\/\?]+/gi,
group: '$1'
},
{
name: 'names',
reg: /((username=)|(lastname=))[^&\/\?]+/gi,
group: '$1'
}
];
let secret = function(obj){
Object.values(obj).forEach(function(val) {
myReg.forEach(function(regTest) {
val = val.toString();
val = val.replace(regTest.reg, regTest.group + '[redacted ' + regTest.name + ']');
});
});
return obj;
}
let newEvent = secret(event);
console.log(newEvent);
我沒有得到帶有替換值的原始 Object。 我的代碼有什么問題? 我很感激任何幫助。
您正在設置局部變量val
。 您實際上應該使用obj
來持久化更改。 嘗試像這樣使用Object.keys(obj)
進行迭代
Object.keys(obj).forEach(function(key) {
myReg.forEach(function(regTest) {
let val = obj[key].toString();
obj[key] = val.replace(regTest.reg, regTest.group + '[redacted ' + regTest.name + ']');
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.