311 votes

Ajouter une propriété à un objet JavaScript en utilisant une variable comme nom ?

J'extrais des éléments du DOM avec jQuery et je veux définir une propriété sur un objet en utilisant la fonction id de l'élément DOM.

Exemple

const obj = {}

jQuery(itemsFromDom).each(function() {
  const element = jQuery(this)
  const name = element.attr('id')
  const value = element.attr('value')

  // Here is the problem
  obj.name = value
})

Si itemsFromDom comprend un élément avec un id de "monId", je veux obj pour avoir une propriété nommée "myId". Ce qui précède me donne name .

Comment nommer une propriété d'un objet à l'aide d'une variable en JavaScript ?

1voto

MD SHAYON Points 93

Les 3 façons d'accéder à la valeur de l'objet Nous pouvons afficher la valeur de l'objet en passant la clé appropriée. Comme j'ai utilisé l'emoji comme clé dans mon exemple, c'est un peu délicat. Voyons donc un exemple plus simple.

let me = {
  name: 'samantha',
};

// 1. Dot notation
me.name; // samantha

// 2. Bracket notation (string key)
me['name']; // samantha

// 3. Bracket notation (variable key)
let key = 'name';
me[key]; // samantha

en savoir plus

0voto

Davit Mkrtchyan Points 299

Si vous avez un objet, vous pouvez créer un tableau de clés, puis le mapper et créer un nouvel objet à partir des clés et des valeurs de l'objet précédent.

Object.keys(myObject)
.map(el =>{
 const obj = {};
 obj[el]=myObject[el].code;
 console.log(obj);
});

-2voto

ARNAB Points 69

objectname.newProperty = value;

-3voto

Shubham Asolkar Points 17
const data = [{
    name: 'BMW',
    value: '25641'
  }, {
    name: 'Apple',
    value: '45876'
  },
  {
    name: 'Benz',
    value: '65784'
  },
  {
    name: 'Toyota',
    value: '254'
  }
]

const obj = {
  carsList: [{
    name: 'Ford',
    value: '47563'
  }, {
    name: 'Toyota',
    value: '254'
  }],
  pastriesList: [],
  fruitsList: [{
    name: 'Apple',
    value: '45876'
  }, {
    name: 'Pineapple',
    value: '84523'
  }]
}

let keys = Object.keys(obj);

result = {};

for(key of keys){
    let a =  [...data,...obj[key]];
    result[key] = a;

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X