我的目标是使用对象内部的数据为游戏地形创建 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/