javascript 如何在Array中获取Object

woobm2wo  于 12个月前  发布在  Java
关注(0)|答案(3)|浏览(88)

如何在数组中获取对象?我变得不确定了

myArray = [
  [{ name: test1, username: sampleuser1 }],
  [{ name: test2, username: sampleuser2 }],
  [{ name: test3, username: sampleuser3 }]
  
  ];

const forEachUser = await Promise.all(myArray[[0]].map(async (userSelected) => 
        {
            engagements.push(buildEmailPayload(bridgeInfo, userSelected, incident));
            const callPayload = buildCallPayload(bridgeInfo, userSelected, incident);
            
        })

这是我的代码,我试图在每个用户名中运行函数

nom7f22z

nom7f22z1#

您可以通过两种方法获取这些用户对象:

let myArray = [
   [{ name: "test1", username: "sampleuser1" }],
   [{ name: "test2", username: "sampleuser2" }],
   [{ name: "test3", username: "sampleuser3" }]
];

1.使用索引值

const forEachUser = await Promise.all(
myArray.map(userSelected => {
    engagements.push(buildEmailPayload(bridgeInfo, userSelected[0], incident));
    return buildCallPayload(bridgeInfo, userSelected[0], incident);
 })
);

2.使用Array.flat方法,生成一级数组

const forEachUser = await Promise.all(
myArray[[0]].flat().map(userSelected => {
    engagements.push(buildEmailPayload(bridgeInfo, userSelected, incident));
    const callPayload = buildCallPayload(bridgeInfo, userSelected, incident);
    return callPayload
 })
);

Promise.all需要数组的承诺,你需要返回一些承诺

46scxncf

46scxncf2#

要获取数组中的对象,可以使用外部数组的索引和内部数组的索引来访问所需的对象。在提供的代码中,myArray是一个数组的数组,其中每个内部数组包含一个具有nameusername的对象

myArray = [
  [{ name: 'test1', username: 'sampleuser1' }],
  [{ name: 'test2', username: 'sampleuser2' }],
  [{ name: 'test3', username: 'sampleuser3' }]
  
  ];

for (let i = 0; i < myArray.length; i++) {
  for (let j = 0; j < myArray[i].length; j++) {
    const object = myArray[i][j];
    ...
  }
}
qlckcl4x

qlckcl4x3#

userSelected参数使用数组解构。这会给予你一个myArray的项目的第一个元素:

const forEachUser = await Promise.all(myArray.map(async ([userSelected]) => 
    {
        engagements.push(buildEmailPayload(bridgeInfo, userSelected, incident));
        const callPayload = buildCallPayload(bridgeInfo, userSelected, incident);

    })

如果需要获取username,添加对象解构:

const forEachUser = await Promise.all(myArray.map(async ([{username}]) => 
    {
        engagements.push(buildEmailPayload(bridgeInfo, username, incident));
        const callPayload = buildCallPayload(bridgeInfo, username, incident);

    })

相关问题