javascript - 如何在 JavaScript 中使用 .replace(/\D/g ,' ' ) 后替换 Object 中的所有数据?

标签 javascript json

我的目标是使用对象内部的数据为游戏地形创建 div。 .replace() 方法似乎只适用于一个 div。我无法理解它。

var x = {
  y : { z : '1', z1 : '1', z2 : '1'},
  y1 : { z : '2', z1 : '2', z2 : '2'},
  y2 : { z : '3', z1 : '3', z2 : '3'},
};

var str = JSON.stringify(x);
var str = str
  .replace(/\D/g,' ')
  .replace('1', '<div id=\'grass\'></div>')
  .replace('2', '<div id=\'dirt\'></div>')
  .replace('3', '<div id=\'water\'></div>');
document.write(str);

最佳答案

您可以创建一个变量 numsMap 并使用正则表达式的 g 全局匹配:

const x = {y : { z : '1', z1 : '1', z2 : '1'},y1 : { z : '2', z1 : '2', z2 : '2'},y2 : { z : '3', z1 : '3', z2 : '3'}};
const numsMap = {
  1: '<div id="grass"></div>',
  2: '<div id="dirt"></div>',
  3: '<div id="water"></div>'
};
const str = JSON.stringify(x)
  .replace(/\D/g, '')
  .replace(/\d/g, n => numsMap[n]);

console.log(str);

关于javascript - 如何在 JavaScript 中使用 .replace(/\D/g ,' ' ) 后替换 Object 中的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47982499/

相关文章:

javascript - 带有 React js 的背景图像 - 不显示全屏

javascript - React - useState 和 Firebase 的问题

python - 将JSON字符串从zmq(C)传输到Python问题

json - Play &Json : How to validate an array of integers

javascript - 垂直循环 HTM5 Canvas 中的图像数据

javascript - 使用await作为参数

javascript - Cordova Android 推荐人

javascript - 如何将 JSON 数组添加到无限数量的选项菜单中?

php - json_decode 不解释数组

android - 如何使用 JsonArray 和 JsonObject 创建 Json