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
ต้องทำอย่างไร?
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]);
มิฉะนั้นจะมองหาคุณสมบัติ "ชื่อ" แทนที่จะเป็นคุณสมบัติ "a"
obj["a"]เทียบเท่าobj.a
ดังนั้นใช้obj[name]คุณจะได้รับ " A "
ใช้ไวยากรณ์นี้:
obj[name]
โปรดทราบว่าobj.xจะเหมือนกับobj["x"]ตัวระบุ JS ที่ถูกต้องทั้งหมด แต่รูปแบบหลังยอมรับสตริงทั้งหมดเป็นคีย์ (ไม่ใช่แค่ตัวระบุที่ถูกต้อง)
obj["Hey, this is ... neat?"] = 42
ฉันใช้ไวยากรณ์ต่อไปนี้:
objTest = {"error": true, "message": "test message"};
รับข้อผิดพลาด:
var name = "error"
console.log(objTest[name]);
รับข้อความ:
name = "message"
console.log(objTest[name]);
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);
var o = { cat : "meow", dog : "woof"};
var x = Object.keys(o);
for (i=0; i<x.length; i++) {
console.log(o[x[i]]);
}
IAB