如何从对象中提取pin属性并在JavaScript中创建一个pin数组?

卡里姆·阿里(Karim Ali)

我已经用array完成了PinArray.push(data.pin),但是我正在寻找更好的解决方案。

let PinArray = [];

const bbb = AllPackages.forEach(p => {
    p.dealProducts
        .filter(dp => dp.product.code === 'AAA')
        .forEach(data => PinArray.push(data.pin));
});

const AllPackages = [
      {
        Id: 1,
        dealProducts: [
          {
            pin: 'AAA000',
            product: {
              id: '100',
              code: 'AAA',
              name: 'AAA'
            }
          },
          {
            pin: 'AAA111',
            product: {
              id: '200',
              code: 'BBB',
              name: 'BBB'
            }
          }
        ]
      },
      {
        Id: 2,
        dealProducts: [
          {
            pin: '',
            product: {
              id: '300',
              code: 'CCC',
              name: 'CCC'
            }
          },
          {
            pin: '1',
            product: {
              id: '200',
              code: 'AAA',
              name: 'BBB'
            }
          },
          {
            pin: '1',
            product: {
              id: '200',
              code: 'BBB',
              name: 'BBB'
            }
          },
          {
            pin: '',
            product: {
              id: '400',
              code: 'DDD',
              name: 'DDD'
            }
          },
          {
            pin: 'AAA111',
            product: {
              id: '100',
              code: 'AAA',
              name: 'AAA'
            }
          }
        ]
      }
    ];
    
const PinArray = AllPackages.forEach(p => {
      p.dealProducts.filter(dp => dp.product.code === 'AAA')
        .forEach(data => { 
        const{pin} = data; 
        return pin; 
        });
    });

console.log(PinArray);

<!-- begin snippet: js hide: false console: true babel: false -->

一定的表现

您可以简明地得到所有dealProductswith的单个数组flatMap然后.filter仅选择具有正确代码的代码,然后映射以从每个代码中提取引脚:

const pinArray = AllPackages
  .flatMap(p => p.dealProducts)
  .filter(obj => obj.product.code === 'AAA')
  .map(data => data.pin);

const AllPackages = [{
    Id: 1,
    dealProducts: [{
        pin: 'AAA000',
        product: {
          id: '100',
          code: 'AAA',
          name: 'AAA'
        }
      },
      {
        pin: 'AAA111',
        product: {
          id: '200',
          code: 'BBB',
          name: 'BBB'
        }
      }
    ]
  },
  {
    Id: 2,
    dealProducts: [{
        pin: '',
        product: {
          id: '300',
          code: 'CCC',
          name: 'CCC'
        }
      },
      {
        pin: '1',
        product: {
          id: '200',
          code: 'AAA',
          name: 'BBB'
        }
      },
      {
        pin: '1',
        product: {
          id: '200',
          code: 'BBB',
          name: 'BBB'
        }
      },
      {
        pin: '',
        product: {
          id: '400',
          code: 'DDD',
          name: 'DDD'
        }
      },
      {
        pin: 'AAA111',
        product: {
          id: '100',
          code: 'AAA',
          name: 'AAA'
        }
      }
    ]
  }
];

const pinArray = AllPackages
  .flatMap(p => p.dealProducts)
  .filter(obj => obj.product.code === 'AAA')
  .map(data => data.pin);
console.log(pinArray);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从对象数组中提取每个对象的属性值,然后放入另一个数组中

如何从另一个数组中的 JSON 对象中提取值?

在Spark中,如何从结构中提取数组并使用它创建一个新字段

如何使用一个公共字段提取数据并在javascript中制作嵌套数组

Javascript - 为每个循环创建一个对象并在数组中递增计数

Dataweave 从数组对象中提取对象并创建一个 json 请求

从数组中提取对象以创建另一个数组

如何从一个对象数组中提取所有可能匹配的对象数组?

JavaScript如何将数组属性提取到另一个数组中?

我创建了一个 pin box,即使我输入正确的 pin 也显示错误

如何从一个数组中提取数组并将它们转换为对象并将它们放入一个新数组中?

如何使用另一个数组按键/值从数组中提取对象

从Javascript中的对象数组创建一个对象

如何从对象数组中提取两个属性的值到数组中

如何从不同的文件中提取特定的列并在一个文件中输出?

根据Javascript中另一个对象的属性数量创建新数组

可以从 Javascript 中的对象属性创建一个新数组

如何从另一个对象中提取对象?

javascript从数组中的所有对象中提取某些属性

如何从对象数组中创建一个新数组?

如何在数组数组中连接数组的字符串属性并在每个数组中创建一个新属性

如何创建从另一个对象列表中提取数据的列表

从数组中的多个特定结构中提取一个属性

从列中提取一种模式,并在R数据帧中创建一个新模式

如何将一个函数的另一个对象的属性传递给一个函数,并在javascript中调用它?

如何从包含HTML代码的数组元素中提取特定部分,并使用提取的内容创建一个新数组?

如何从 API 中提取数据并创建一个数组以发送到 Jmeter 中的另一个 API?

如何基于另一个数组中的条件从关联数组中提取?

在javascript中的对象数组中从具有空值的数组创建一个新属性