【问题标题】:How to access the property of objects obtained after a forEach?如何访问forEach之后获得的对象的属性?
【发布时间】:2020-05-22 10:12:54
【问题描述】:

我从后端收到一个嵌套对象数组,我通过它们来修改值并根据我的应用程序所需的条件进行过滤

      const data = this.market;
      data.forEach(function(item: any, i) {
        if (item.functional_id === 'cool') {
          data.splice(i, 1);
          data.unshift(item);
        }
        if (item.functional_id === 'max') {
          item.name = 'Max min';
        }
        item.products.forEach(function(product) {
          product.items.forEach(function(article) {
            console.log(article);
          });

        });
      });
  }


在 console.log 点我收到几个具有以下结构的对象

{
  "name": "Standard",
  "description": "for 50",
  "price": 20,
  "functional_id": "sacs_housse"
}

我得到的一些商品的价格带有小数点,用点分隔,我想检查它是否有那个点以用逗号替换它。 所以我试图对替换积分设定条件。但是我看不到访问该属性的方法,因为我尝试过的所有循环类型都返回错误。 我尝试过的一些事情如下。

const data = this.market;
      data.forEach(function(item: any, i) {
        if (item.functional_id === 'cool') {
          data.splice(i, 1);
          data.unshift(item);
        }
        if (item.functional_id === 'furniture') {
          item.name = 'Max min';
        }
        item.products.forEach(function(product) {
          product.items.forEach(function(article) {
            const price = item.price;
            if (price.contains('.')) {
              price.replace(/./g, ',');
            }            
          });

        });
      });

看到我所犯错误并可以帮助我的人。 提前谢谢你。

【问题讨论】:

  • price 是一个数字。而且数字没有.contains() 也没有.replace() 方法。
  • .replace(/./g, ',') 不会像您认为的那样做。查看正则表达式教程以及哪些字符具有特殊含义。
  • 另外,const price = item.price; 创建一个副本;更改 priceitem.price 没有影响。此外,您需要使用 .replace() 的返回值,因为它不会改变原始字符串。
  • 非常感谢! @Andreas 我不明白为什么控制台打印的数据不能被修改。
  • 使用它来设置输出格式:angular.io/api/common/DecimalPipe

标签: javascript loops object nested angular7


【解决方案1】:

我在mdn中发现这个方法效果很好,谢谢大家的帮助

new Intl.NumberFormat('de-DE').format(item.price);

这是 mdn 的链接 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多