-3

javascript object skeleton

var users = {};

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

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

Requirement: i want to retrieve 123 and it's objects by search key (ex: 123)

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

similarly if key is 456, i want to retrieve

'456':  
   { name: 'K',  
     gender: 'male' }  
 }
Jack Bashford
  • 43,180
  • 11
  • 50
  • 79
Jayanth R
  • 19
  • 1
  • 3

3 Answers3

0

Simply check if the property exists, and return it if it does:

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'))
Kobe
  • 6,226
  • 1
  • 14
  • 35
0

Really simple - use array notation:

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; }
Jack Bashford
  • 43,180
  • 11
  • 50
  • 79
0

You mean dynamic property access? Use [] notation for that.

Inn Javascript, to access an object's property 'xyz' , there's two notations:

obj.xyz

and

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'));
connexo
  • 53,704
  • 14
  • 91
  • 128