JavaScript对象数据和数组
JavaScript object data and Arrays
我有一个JavaScript对象,如下所示。
var sampleData = {
"studentsList": {
"Student1": {
"marks": "123",
"grade": "B"
},
"Student2": {
"marks": "144",
"grade": "A"
}
}
};
现在用户输入一个学生的名字,比如Student1
,我需要得到该对象的详细信息。
我有两个问题
[1]如何使用JavaScript获取输入学生的详细信息?
当我使用sampleData.studendsList.valueOf("Student1")
时,会返回完整的对象。我只需要"Student1"的详细信息。
[2]这样做正确吗?或者我们应该创建一个Students数组,其中包含一个名为"name"的属性,值为Student1
?如果我采用这种方法,那么我需要遍历整个数组列表,以获得学生的详细信息。
哪个学徒更好?
sampleData.studentsList.Student1
或sampleData.studentsList["Student1"]
数组通常是存储项目列表的更自然的方式(比如学生)。但也有一些权衡。作为结构化的(使用对象),您可以在恒定时间内按名称访问任何学生:
sampleData.studentsList.Student1
用一个数组构造如下:
var sampleData = {
"studentsList": [
{
"marks": "123",
"grade": "B"
},
{
"marks": "144",
"grade": "A"
}
]
};
访问nth
学生如下:
sampleData.studentsList[n]
如果所需学生的索引未知,则访问特定学生(基于其详细信息)是O(n)
(因为在最坏的情况下,您需要迭代整个数组才能找到正确的项目)。
[1]使用[]
访问属性。这样,您就可以在那里插入一个变量,而不仅仅是一个硬编码的标识符。
var studentDetails = sampleData.studendsList[ "Student1" ];
[2]为了快速访问特定的学生,这是更好的方法。任何阵列都需要某种阵列扫描来访问特定的细节对象。
[1]给定一个存储在javascript变量中的学生名称,我们称之为studentName
,您可以访问该学生的详细信息,如下所示:
var studentData = sampleData.studentsList[studentName];
[2]在数组或对象之间进行选择时,最大的决定因素是:关键是什么?如果键是不相关的或者只是数字,那么它应该是一个数组。在这种情况下,关键是学生的名字,所以有一个对象肯定是更好的选择。
sampleData.studentsList.Student1
然而,如果你有一个确切的形状的对象,你有它,但作为一个字符串,你需要首先JSON.parse它,就像这样…
myObj = JSON.parse(yourString);
myObj.studentsList.Student1
- JSON数组数据返回Undefined
- 具有关联数组数据集的D3.js表
- TinyMCE获取数组数据
- Emberjs#每个循环不处理数组数据
- 使用Angular.js访问php数组数据
- 数组数据排序类似mysql查询
- 在Redux中映射对象数组数据
- jqGrid - 搜索本地数组数据
- 如何在不赋值数组变量的情况下读取数组数据
- 停止 jQuery 自动完成以过滤/搜索结果并填充整个源数组数据
- 如何在 AngularJS 中从 API 访问数组数据
- JQuery - 根据数组数据将 html 表列添加到表的末尾
- 如何将json格式的数组数据从jquery返回到html
- 异步循环使用递归:如何访问推送数组数据
- Node.js对象数组数据联接
- 序列promise链与数组数据,如何解析promise链
- 如何加速getJSON数组数据
- PHP同时循环数组数据显示到javascript中
- 流星:显示数组数据,因为表在添加新列时给出了重复值
- 数组数据不会显示在表中