gpt4 book ai didi

javascript - jQuery:将对象 ["student.course.name"] 转换为对象 ['student' ] ['course' ] ['name' ]

转载 作者:行者123 更新时间:2023-11-28 15:48:58 25 4
gpt4 key购买 nike

我将服务器发送的数据附加到表中,显示所选/嵌套对象属性。我在提供正确的多维来获取正确的数据成员方面遇到困难。

场景:我有一个 json对象,我需要在 JavaScript 中获取其属性。脚本键(例如“student.course.name”)任意长度的成员访问层次结构。

输入: "student.course.name"
用作: someObject['student']['course']['name']
可能的输入键:"age", "dept.name", "student.college.university.name" etc.

我已经尝试过.split()for loop但没有一个能够满足所有可能的要求。请提出修改建议!

最佳答案

如果您确实有字符串 "student.course.name 并且您确实有一个具有名为 student 的属性的对象,而该对象又具有名为 course,它又具有一个名为 name 的属性,例如:

var key = "student.course.name";
var someObject = {
student: {
course: {
name: "the name"
}
}
};

然后这有效:

var keys = key.split(".");
console.log(someObject[keys[0]][keys[1]][keys[2]]);

Live Example | Source

或者不定深度版本:

var keys = key.split(".");
var value = someObject;
var n;
for (n = 0; n < keys.length; ++n) {
value = value[keys[n]];
}
console.log(value);

Live Example | Source

我们从value = someObject开始,对于每个键,我们从value中获取相关属性并将其分配给value。因此,在第一遍中,value 成为 student 对象;第二遍是course;在第三次也是最后一次传递时,它是 name 的值。

关于javascript - jQuery:将对象 ["student.course.name"] 转换为对象 ['student' ] ['course' ] ['name' ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com