7

我通过该网站进行了搜索,但它仍然无法正常工作。

var blah2 = JSON.stringify({foo: 123, bar: <x><y></y></x>, baz: 123});

这是我尝试过的:

blah2.replace(/[{}]/g, "");

这就是字符串的结果:

got "{\"baz\":123,\"foo\":123}"

(我知道这可能是一个新手问题,但这是我第一次使用 javascript,我只是不知道我错过了什么)

4

2 回答 2

20

Javascript 字符串是不可变的。当你打电话时blah2.replace,你不是在替换里面的东西blah2,你是在创建一个新的字符串。你可能想要的是:

blah2 = blah2.replace(/[{}]/g, '');
于 2012-05-29T03:01:20.713 回答
0

因为我要用逗号分割它,所以它变成一个数组,所以当我对它进行排序时,我不想根据 { 和 } 对其进行排序

zi42 已经给你正确答案了。

但是由于您已经按照上面引用的方式编写,看起来您真正想要的是对数据进行排序并将其拆分为数组;在这种情况下,在逗号等处解析/拆分它是一个很长的路要走。这是另一种思考方式:

var data = {foo: 123, bar: <x><y></y></x>, baz: 123};
var key;
var dataSorted = []; // Create an empty array

for (key in data) {  // Iterate through each key of the JSON data
  dataSorted.push(key);
}

dataSorted.sort();

现在您已经对数据进行了排序。当你想使用它时,你可以这样使用它:

for (var i = 0; i < dataSorted.length; i++) {
  var key = dataSorted[i];
  // Now you do whatever you need with sorted data. eg:
  console.log("Key is: " + key + ", value is: " + data[key]);
}
于 2012-05-29T04:05:58.700 回答