لقد واجهت مشكلة مؤخرًا:
نسخة الكود كما يلي:
var obj = {"name1": "Zhang San" ، "Name2": "li si"} ؛
var key = "name1" ؛
var value = obj.key ؛ // احصل على "غير محدد"
القيمة = obj.name1 ؛ // الحصول على "Zhang San"
في الواقع ، أريد تعيين قيمة للمفتاح ديناميكيًا ثم أحصل على قيمة المفتاح بقدر ما هو عليه. لكن هذا النهج لا يعمل.
لذلك ، فكرت في طريقة لاجتياز خصائص الكائن في JS:
نسخة الكود كما يلي:
وظيفة printObject (obj) {
// obj = {"cid": "c0" ، "ctext": "District and County"} ؛
var temp = "" ؛
لـ (var i in obj) {// loop من خلال خصائص الكائن مع javaScript لـ/in
temp+= i+":"+obj [i]+"/n" ؛
}
تنبيه (درجة حرارة) ؛ // النتيجة: CID: C0/N ctext: المقاطعة والمقاطعة
}
وبهذه الطريقة ، يمكنك أن تعرف بوضوح ما هو مفتاح وقيمة الكائن في JS على التوالي.
العودة إلى السؤال الآن ، كيفية تعيين قيمة للمفتاح ديناميكيًا ثم الحصول على القيمة المقابلة في OBJ.Key؟
في الواقع ، هناك موجه في printobject أعلاه ، أي ، يتم استخدام طريقة OBJ [مفتاح] ، يمكن أن يكون المفتاح ديناميكيًا ، والذي يحل المشكلة التي أثارتها أعلاه.
أخيرًا ، هناك طريقة أخرى يمكن القيام بها ، أي: eval ("OBJ."+مفتاح).
تلخيص:
هناك طريقتان للحصول على القيمة المقابلة في كائن معين يعتمد على المفتاح الديناميكي في JS:
1. var key = "name1" ؛ var value = obj [key] ؛
2. var key = "name1" ؛ var value = eval ("obj."+key) ؛