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

标签 javascript arrays json function

我有一个 JSON 对象,我在其中获取产品价格(数字)作为值。

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

我使用 map 函数:

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 ');
})

我希望 ma​​p 函数更新我的 prods 对象,但它保持不变。

(Un)working JS Bin

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

最佳答案

字符串是不可变的。

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; }

关于javascript - 更改 JSON 数组中的值并返回更新的数组 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41959026/

相关文章:

c - 使用二维数组,我的数组没有出现

javascript - NodeJS 使用 Mocha 和 Should.js 测试数据库

javascript - 如果单击图像,则更改状态单选按钮

javascript - form.checkValidity 检查两个密码字段是否匹配

arrays - Swift:在数组中查找值并返回特定键

java - Java 2d int 数组考虑器是否通用?为什么?

javascript - 通过JavaScript将样式top添加到其他高度元素的ID元素

javascript - 使用 jQuery 进行 RSS 时多个帖子不可见

javascript - 如何避免 JavaScript 日期格式错误

json - 解码后的 JSON 字段仅给出 nil 值,无法存储到变量中