ฉันเคยพบปัญหาเมื่อเร็ว ๆ นี้:
การคัดลอกรหัสมีดังนี้:
var obj = {"name1": "จางซาน", "name2": "li si"};
var key = "name1";
var value = obj.key; // รับ "undefined"
value = obj.name1; // รับ "จางซาน"
ที่จริงแล้วฉันต้องการกำหนดค่าให้กับคีย์แบบไดนามิกจากนั้นรับค่าของคีย์เท่าที่เป็นอยู่ แต่วิธีการนี้ไม่ได้ผล
ดังนั้นฉันคิดว่าจะสำรวจคุณสมบัติของวัตถุใน JS:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น printObject (obj) {
// obj = {"CID": "C0", "CTEXT": "District and County"};
var temp = "";
สำหรับ (var i ใน obj) {// วนผ่านคุณสมบัติของวัตถุด้วย JavaScript สำหรับ/in
temp+= i+":"+obj [i]+"/n";
-
การแจ้งเตือน (อุณหภูมิ); // ผลลัพธ์: CID: C0/N CTEXT: District and County
-
ด้วยวิธีนี้คุณสามารถรู้ได้อย่างชัดเจนว่าคีย์และคุณค่าของวัตถุใน JS นั้นเป็นไปอย่างชัดเจนว่าอะไร
กลับไปที่คำถามตอนนี้วิธีกำหนดค่าให้กับคีย์แบบไดนามิกจากนั้นรับค่าที่สอดคล้องกันใน obj.key ได้อย่างไร
ในความเป็นจริงมีการแจ้งเตือนใน PrintObject ด้านบนนั่นคือวิธีการใช้ OBJ [คีย์] ที่ใช้กุญแจสามารถเป็นแบบไดนามิกซึ่งแก้ปัญหาที่ฉันยกไว้ข้างต้น
ในที่สุดก็มีวิธีอื่นที่สามารถทำได้นั่นคือ: eval ("obj."+key)
สรุป:
มีสองวิธีในการรับค่าที่สอดคล้องกันในวัตถุบางอย่างตามคีย์แบบไดนามิกใน JS:
1. var key = "name1"; var value = obj [key];
2. var key = "name1"; var value = eval ("obj."+key);