【问题标题】:Retrieving values from array throws error javacript从数组中检索值会引发错误 javascript
【发布时间】:2021-12-17 13:31:59
【问题描述】:

我有一个包含以下值的数组:

 [
  {
    'Admin1': {
      id: 'fa1b2731'
     
    },
    'Admin2': {
      id: '7b5ab064'
     
    },
    'Admin3': {
      id: '9f462511'
     
    },
    'Admin4': {
      id: 'aa82421d'
    
    },
    'Admin5': {
      id: '34cb2b'
     
    },
    'Admin6': {
      id: 'ff71ffdd'
    
    },
    'Admin7': {
      id: 'b57ac9e7'    
      
    }
  }
] 

我试图从上面的数组中检索每个用户 ID 的代码抛出一个错误->预期未定义不是未定义 以下是代码sn-p:

 if (userArray) {    
    for (const user of Object.values(userArray)) {
      const delUserRes = await userApi.deleteUserById({
        token: accessToken,
        organizationId: orgid;,
        userId: user.id
      });

上述方法正确读取了userarray,但从未将每个id分配给userId form user.id并抛出错误

【问题讨论】:

  • 看起来您正在获取数组的值,而不是数组中每个对象的值(也就是说,如果 userArray 是您在问题顶部显示的数组)
  • 如果userArray 是一个数组,则没有理由使用Object.values,因为它不是一个对象...直接使用(const user of userArray){... 但是,那么你将只有一个元素,这个是你需要使用 Object.values 的地方

标签: javascript mocha.js chai


【解决方案1】:

示例中的数组有一个项目,我的意思是得到user.id,你应该调用array[0].['Admin1'].id。在您的代码中,您像 array.['Admin1'].id 一样执行此操作,这就是它找不到 user.id 的原因。

试试这样的

 if (userArray) {    
    for (const user of Object.values(userArray[0])) {
      const delUserRes = await userApi.deleteUserById({
        token: accessToken,
        organizationId: orgid;,
        userId: user.id
      });

【讨论】:

  • 这就像一个魅力。感谢您的快速回复。
【解决方案2】:

您的所有用户都在 0 索引处的数组对象的单个元素中。 试试下面的代码

 for (const user of Object.values(userArray[0])) {
console.log(user) 
 }

【讨论】:

    【解决方案3】:

    基本上,您试图从数组中的对象获取值,因此Object.values 在您的代码中没有意义。您可以简单地在 for 循环中使用 userArray[0]map ,例如:

    var data = [ { 'Admin1': { id: 'fa1b2731' }, 'Admin2': { id: '7b5ab064' }, 'Admin3': { id: '9f462511' }, 'Admin4': { id: 'aa82421d' }, 'Admin5': { id: '34cb2b' }, 'Admin6': { id: 'ff71ffdd' }, 'Admin7': { id: 'b57ac9e7' } } ] 
    
    Object.values(data[0]).map(user => {   //your logic here } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多