maf*_*n95 3 javascript multidimensional-array for-in-loop
在 javascript 中,我试图从对象数组中列出的几个对象中打印值。问题与使用 for in 循环钻取对象/数组有关。更具体地说,如果可能的话,我想避免使用 for 循环(我刚刚学习了 for/in 并试图很好地理解它)
该对象如下所示:
var users = {
'Students': [
{ first_name: 'Michael', last_name : 'Jordan' },
{ first_name : 'John', last_name : 'Rosales' },
{ first_name : 'Mark', last_name : 'Guillen' },
{ first_name : 'KB', last_name : 'Tonel' }
],
'Instructors': [
{ first_name : 'Michael', last_name : 'Jackson' },
{ first_name : 'Martin', last_name : 'Puryear' }
]
};
Run Code Online (Sandbox Code Playgroud)
我怎么能写一个函数来返回这个对象中埋藏的所有名字?我想控制台日志:
Students
1 - MICHAEL JORDAN
2 - JOHN ROSALES
3 - MARK GUILLEN
4 - KB TONEL
Instructors
1 - MICHAEL JACKSON
2 - MARTIN PURYEAR
Run Code Online (Sandbox Code Playgroud)
我试过写几个 for/in 循环,但我一直得到意想不到的结果。预先感谢您查看此内容。
您可以将这样的问题分解为更小的部分。首先,我们如何获取地图的各个元素?
for (var key in users) {
console.log(key);
}
Run Code Online (Sandbox Code Playgroud)
日志:
students
teachers
Run Code Online (Sandbox Code Playgroud)
所以现在我们可以users在该循环内一次获取一个成员:
var userArray = users[key];
Run Code Online (Sandbox Code Playgroud)
每次都提取一个数组。现在您可以循环遍历数组,通过将其添加到我们已经拥有的循环中:
for(var i in userArray) {
console.log(userArray[i]);
}
Run Code Online (Sandbox Code Playgroud)
从您的列表中打印出单个项目,例如 {first_name: 'Michael', last_name : 'Jordan'}
现在您可以以不同的方式打印它。
var item = userArray[i];
console.log(i + ' ' + item[first_name] + ' ' + item[last_name]);
Run Code Online (Sandbox Code Playgroud)
把所有这些部分放在一起,你就非常接近你的目标(你只需要大写——谷歌它!)
所以我们有我们需要在 Javascript 中实现的一切,这个伪代码总结了:
for each type of user in "users"
for each user record in the list
print the index, firstname and lastname
end
end
Run Code Online (Sandbox Code Playgroud)
您可以通过将内部循环提取到它自己的函数中来使这个更整洁。您可以通过使用函数式编程构造(例如array.map()将一个数组转换为另一个数组)以更高级的方式完成此操作。但是上面的部分是解决问题的好“初学者方式”。
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |