You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将AWS Cognito listUsers返回的数组转换为扁平化数组?

解决AWS Cognito listUsers返回数据的扁平化问题

你可以通过遍历用户数组,将每个用户的Attributes数组转换为键值对对象,再与原对象的其他属性合并来实现扁平化。以下是具体实现方式:

基础实现

// originalUsers 是你从listUsers获取的原始用户数组
const flattenedUsers = originalUsers.map(user => {
  // 将Attributes数组转成键值对对象
  const attributesMap = user.Attributes.reduce((result, attribute) => {
    result[attribute.Name] = attribute.Value;
    return result;
  }, {});
  
  // 合并属性,生成扁平化结构
  return {
    Username: user.Username,
    UserStatus: user.UserStatus,
    ...attributesMap
  };
});

更灵活的实现(适配原对象多属性场景)

如果原始用户对象包含除Username、Attributes、UserStatus之外的其他字段,用解构赋值可以更灵活地保留所有非Attributes属性:

const flattenedUsers = originalUsers.map(({ Attributes, ...userRest }) => {
  const attributesMap = Attributes.reduce((result, attribute) => {
    result[attribute.Name] = attribute.Value;
    return result;
  }, {});
  
  return { ...userRest, ...attributesMap };
});

代码说明

  • map方法遍历原始用户数组,逐个处理每个用户对象
  • reduce方法将Attributes数组转换为以Name为键、Value为值的普通对象
  • 最后通过对象展开运算符...,将转换后的属性对象与原对象的其他属性合并,得到你需要的扁平化结构

内容的提问来源于stack exchange,提问作者Rich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:13:30