1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| const obj = { lisi: { age: 18, "test-age": 20, hobby: [ "写代码", "打篮球", { Games: ["英雄联盟", "古墓丽影", "神秘海域"], }, ], }, };
const key1 = "lisi"; const key2 = "age"; const key3 = "lisi.age";
console.log(obj.key1); console.log(obj.key2); console.log(obj.key3);
console.log(obj.lisi.age);
console.log(obj.lisi["test-age"]);
console.log(obj[key1].age);
console.log(obj[key1][key2]);
console.log(obj[key3]);
console.log(eval(`obj.${key1}.age`)); console.log(eval(`obj.${key1}.${key2}`)); console.log(eval("obj." + key3));
function GetProperty(obj, str) { str = str.replace(/\[(\w+)\]/g, ".$1"); let arr = str.split("."); for (let i in arr) { obj = obj[arr[i]] || ""; } return obj; } console.log(GetProperty(obj, key3)); console.log(GetProperty(obj, "lisi.test-age")); console.log(GetProperty(obj, "lisi.hobby[2].Games[1]"));
|