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]вы получите " А "


1
Обратите внимание, что obj [name] вернет неопределенное obj.name.
Hamid

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.