【问题标题】:How to retrieve specific javascript object including key [duplicate]如何检索特定的javascript对象,包括键[重复]
【发布时间】:2019-11-11 21:25:21
【问题描述】:

javascript 对象骨架

var users = {};

users = {
  '123': {
    name: 'Lucky',
    gender: 'female'
  },

  '456': {
    name: 'K',
    gender: 'male'
  }
}

要求:我想通过搜索键检索 123 和它的对象(例如:123)

'123':  
 { name: 'Lucky',  
     gender: 'female' }

同样,如果键是 456,我想检索

'456':  
   { name: 'K',  
     gender: 'male' }  
 }

【问题讨论】:

标签: javascript object javascript-objects


【解决方案1】:

只需检查属性是否存在,如果存在则返回:

var users = {};

users = {
  '123': {
    name: 'Lucky',
    gender: 'female'
  },

  '456': {
    name: 'K',
    gender: 'male'
  }
};

const search = s => s && users[s] && {[s]: users[s]}

console.log(search('123'))

【讨论】:

    【解决方案2】:

    真的很简单——使用数组表示法:

    const users = {
      '123': {
        name: 'Lucky',
        gender: 'female'
      },
    
      '456': {
        name: 'K',
        gender: 'male'
      }
    }
    
    const getObjectByNum = n => ({ [n]: users[n] }) || "Not found";
    
    console.log(getObjectByNum(123));
    console.log(getObjectByNum(456));
    .as-console-wrapper { max-height: 100% !important; top: auto; }

    【讨论】:

    • 我认为 OP 也希望返回密钥。
    • 刚刚看到@Kobe - 现在已修复。
    【解决方案3】:

    您的意思是动态属性访问?为此使用 [] 表示法。

    Inn Javascript,要访问对象的属性 'xyz' ,有两种表示法:

    obj.xyz
    

    ob['xyz']
    

    var users = {
      '123': {
        name: 'Lucky',
        gender: 'female'
      },
    
      '456': {
        name: 'K',
        gender: 'male'
      }
    }
    
    function getUserById(usermap, id) {
      try {
        return { [id]: usermap[id] }
      } catch (error) {
        console.log(error);
      }
    }
    
    console.log(getUserById(users, '456'));

    【讨论】:

    • 我认为 OP 也想返回密钥。
    • 相应地调整了答案。
    猜你喜欢
    • 2022-01-03
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多