Javascript 为什么这个forEach()变量无法解析?

Javascript 为什么这个forEach()变量无法解析?,javascript,Javascript,我有一些代码: 从对象的js数组获取所有id 将这些id的不同列表创建到新变量中 对ID的不同列表执行forEach,以进行逐个处理 当我的代码到达上面的调试器断点时,forEach x值2将显示在监视中,但没有从supplierPricingInfo返回匹配的行(尽管应该有)。但是,如果我将x变量值硬编码为2,则会从supplierPricingInfo返回匹配的行。这很奇怪。我想我以前没见过这样的问题。你知道根本原因是什么吗?我想你的x是搞错了。尝试用id替换外部x,如下所示: distin

我有一些代码:

  • 从对象的js数组获取所有id
  • 将这些id的不同列表创建到新变量中
  • 对ID的不同列表执行
    forEach
    ,以进行逐个处理

  • 当我的代码到达上面的调试器断点时,forEach x值2将显示在监视中,但没有从supplierPricingInfo返回匹配的行(尽管应该有)。但是,如果我将
    x
    变量值硬编码为2,则会从supplierPricingInfo返回匹配的行。这很奇怪。我想我以前没见过这样的问题。你知道根本原因是什么吗?

    我想你的
    x
    是搞错了。尝试用
    id
    替换外部
    x
    ,如下所示:

    distinctCommodityIds.forEach(id => {
      sapCommodityRows = supplierPricingInfo.filter(x => x.CommodityId === id);
      debugger;
    });
    

    你能检查一下吗,这里我们从array获得唯一的CommodityId

    let items = [
      { id: 1, CommodityId: 1, name: 'Alex' },
      { id: 2, CommodityId: 2, name: 'John' },
      { id: 3, CommodityId: 1, name: 'Jane' },
      { id: 4, CommodityId: 3, name: 'Doe' },
      { id: 5, CommodityId: 2, name: 'Peter' }
    ];
    
    const unique = [...new Set(items.map(item => item.CommodityId))];
    console.log(unique)
    
    let items = [
      { id: 1, CommodityId: 1, name: 'Alex' },
      { id: 2, CommodityId: 2, name: 'John' },
      { id: 3, CommodityId: 1, name: 'Jane' },
      { id: 4, CommodityId: 3, name: 'Doe' },
      { id: 5, CommodityId: 2, name: 'Peter' }
    ];
    
    const unique = [...new Set(items.map(item => item.CommodityId))];
    console.log(unique)