首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改JSON数组中的值并返回更新的数组JS

更改JSON数组中的值并返回更新的数组JS
EN

Stack Overflow用户
提问于 2017-01-31 13:38:35
回答 5查看 24.2K关注 0票数 3

我有一个JSON对象,其中我得到了一个产品价格(数字)作为一个值。

我想要的是将价格值转换为现有对象中的字符串。

我使用映射函数:

代码语言:javascript
复制
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对象,但它保持不变。

(联合国)联合来文工作

我想知道,如何将最初的对象更新为我需要的对象?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-01-31 13:41:17

字符串是不可变的。

String#replace返回一个新字符串,因此需要赋值。

当您只需要更改一个属性时,可以使用Array#forEach

代码语言:javascript
复制
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);
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 5
EN

Stack Overflow用户

发布于 2017-01-31 13:42:35

您需要在替换后将值重新分配给“价格”。

代码语言:javascript
复制
prods.map(function(a) {
         a.price = a.price.toString()
        .replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ');
})
票数 1
EN

Stack Overflow用户

发布于 2017-01-31 13:44:52

你需要用这个

示例代码

代码语言:javascript
复制
prods.map(function(a) {
             a.price = ""+a.price;
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41959026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档