Javascript - ключ об'єкта-> значення


87
var obj = {
   a: "A",
   b: "B",
   c: "C"
}

console.log(obj.a); // return string : A

але я хочу пройти через таку змінну, як ця

var name = "a";
console.log(obj.name) // but return undefined

Як це зробити?

Відповіді:


105

Використовуйте []позначення для рядкових подань властивостей:

console.log(obj[name]);

В іншому випадку він шукає властивість "name", а не властивість "a".


17

obj["a"]еквівалентно obj.a тому використовуйте obj[name]ви отримуєте " A "


1
Зверніть увагу, що obj [name] поверне obj.name, який не визначений.
Хамід

1
Використовуйте зворотні позначки `` якщо ви пишете невеликі обсяги коду
JuicY_Burrito

7

Використовуйте цей синтаксис:

obj[name]

Зверніть увагу, що obj.xце те саме, що і obj["x"]для всіх дійсних ідентифікаторів JS, але остання форма приймає всі рядки як ключі (а не лише дійсні ідентифікатори).

obj["Hey, this is ... neat?"] = 42

3

Я використовую такий синтаксис:

objTest = {"error": true, "message": "test message"};

отримати помилку:

 var name = "error"
 console.log(objTest[name]);

отримати повідомлення:

 name = "message"
 console.log(objTest[name]);

1

https://jsfiddle.net/sudheernunna/tug98nfm/1/

 var days = {};
days["monday"] = true;
days["tuesday"] = true;
days["wednesday"] = false;
days["thursday"] = true;
days["friday"] = false;
days["saturday"] = true;
days["sunday"] = false;
var userfalse=0,usertrue=0;
for(value in days)
{
   if(days[value]){
   usertrue++;
   }else{
   userfalse++;
   }
    console.log(days[value]);
}
alert("false",userfalse);
alert("true",usertrue);

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.