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

时间:2017-12-26 18:44:25

标签: javascript json

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

currentid

2 个答案:

答案 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>');