如何替换对象内的所有事件?
How to replace all occurrences inside an object?
我有一个这样的对象:
users = [{
"userid": "1",
"fornonmods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">"
}, {
"userid": "19917",
"fornonmods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">"
}];
我想替换所有出现的
data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\"
与
data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"gagged\"
就像我对 replace()
所做的那样,但问题是它只适用于字符串,我不允许将此对象转换为字符串。
在这种情况下我能做什么?
您需要迭代 users
并替换为 regex
模式。
const searchString = new RegExp('data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\"', 'g');
const replacement = 'data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"gagged\"';
const parsedUsers = users.map(x=>{
return {
userid: x.userid,
fornonmods: x.fornonmods.replace(searchString,replacement),
formods: x.formods.replace(searchString,replacement)
}
})
map
就是您要找的
const users = [{
"userid": "1",
"fornonmods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">"
}, {
"userid": "19917",
"fornonmods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">"
}];
const id = "kBr4pelyDy4yKVmiAAAD";
const res = users.map(x => {
const container = {};
container.userid = x.userid,
container.fornonmods = x.fornonmods.replace(`data-login=\"${id}\" data-status=\"online\"`, `data-login=\"${id}\" data-status=\"gagged\"`);
container.formods = x.formods.replace(`data-login=\"${id}\" data-status=\"online\"`, `data-login=\"${id}\" data-status=\"gagged\"`);
return container;
});
console.log(res);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
我有一个这样的对象:
users = [{
"userid": "1",
"fornonmods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">"
}, {
"userid": "19917",
"fornonmods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">"
}];
我想替换所有出现的
data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\"
与
data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"gagged\"
就像我对 replace()
所做的那样,但问题是它只适用于字符串,我不允许将此对象转换为字符串。
在这种情况下我能做什么?
您需要迭代 users
并替换为 regex
模式。
const searchString = new RegExp('data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\"', 'g');
const replacement = 'data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"gagged\"';
const parsedUsers = users.map(x=>{
return {
userid: x.userid,
fornonmods: x.fornonmods.replace(searchString,replacement),
formods: x.formods.replace(searchString,replacement)
}
})
map
就是您要找的
const users = [{
"userid": "1",
"fornonmods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user1\" data-login=\"\" data-status=\"online\" class=\"item\">"
}, {
"userid": "19917",
"fornonmods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">",
"formods": "<div id=\"user19917\" data-login=\"kBr4pelyDy4yKVmiAAAD\" data-status=\"online\" class=\"item\">"
}];
const id = "kBr4pelyDy4yKVmiAAAD";
const res = users.map(x => {
const container = {};
container.userid = x.userid,
container.fornonmods = x.fornonmods.replace(`data-login=\"${id}\" data-status=\"online\"`, `data-login=\"${id}\" data-status=\"gagged\"`);
container.formods = x.formods.replace(`data-login=\"${id}\" data-status=\"online\"`, `data-login=\"${id}\" data-status=\"gagged\"`);
return container;
});
console.log(res);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map