Ответ 1
Использовать нотацию []
для строковых представлений свойств:
console.log(obj[name]);
В противном случае он ищет свойство "name", а не свойство "a".
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
Как это сделать?
Использовать нотацию []
для строковых представлений свойств:
console.log(obj[name]);
В противном случае он ищет свойство "name", а не свойство "a".
obj [ "a" ] эквивалентно obj.a поэтому используйте obj [name], вы получаете "A"
Используйте этот синтаксис:
obj[name]
Обратите внимание, что obj.x
совпадает с obj["x"]
для всех допустимых идентификаторов JS, но последняя форма принимает все строки как ключи (а не только действительные идентификаторы).
obj["Hey, this is ... neat?"] = 42
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);