如何替换对象内的所有事件?

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