我的目标是使用对象内的数据为游戏的地形创建div。 .replace()方法似乎只适用于一个div。我无法绕过它。
currentid
答案 0 :(得分:2)
您可以创建变量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);
答案 1 :(得分:1)
您可以使用g
标志。这将取代不止一次。
var str = str
.replace(/\D/g,' ')
.replace(/1/g, '<div id=\'grass\'></div>')
.replace(/2/g, '<div id=\'dirt\'></div>')
.replace(/3/g, '<div id=\'water\'></div>');