我有一个JSON对象,其中我得到了一个产品价格(数字)作为一个值。
我想要的是将价格值转换为现有对象中的字符串。
我使用映射函数:
var prods = [
{
"id": "id-1",
"price": 239000,
"info": "info-1"
},
{
"id": "id-2",
"price": 90770,
"info": "info-2"
},
{
"id": "id-3",
"price": 200787868,
"info": "info-3"
},
];
prods.map(function(a) {
a.price.toString()
.replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ');
})我希望映射函数更新我的prods对象,但它保持不变。
我想知道,如何将最初的对象更新为我需要的对象?
发布于 2017-01-31 13:41:17
字符串是不可变的。
String#replace返回一个新字符串,因此需要赋值。
当您只需要更改一个属性时,可以使用Array#forEach。
var prods = [{ id: "id-1", price: 239000, info: "info-1" }, { id: "id-2", price: 90770, info: "info-2" }, { id: "id-3", price: 200787868, info: "info-3" }];
prods.forEach(function(a) {
a.price = a.price.toString().replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ');
});
console.log(prods);.as-console-wrapper { max-height: 100% !important; top: 0; }
发布于 2017-01-31 13:42:35
您需要在替换后将值重新分配给“价格”。
prods.map(function(a) {
a.price = a.price.toString()
.replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ');
})发布于 2017-01-31 13:44:52
你需要用这个
示例代码
prods.map(function(a) {
a.price = ""+a.price;
})https://stackoverflow.com/questions/41959026
复制相似问题