Javascript 如何在JS中访问Json数组

Javascript 如何在JS中访问Json数组,javascript,arrays,json,Javascript,Arrays,Json,我有一个json数组,如下所示: var weekdayarrayA = [{ "course": { "id": 44, "name": "test"....... }, "data": { "0": 2, "1": 1, "4": 1 } }, { "course": {

我有一个json数组,如下所示:

var weekdayarrayA = [{
        "course": {
            "id": 44,
            "name": "test".......
        },
        "data": {
            "0": 2,
            "1": 1,
            "4": 1
        }
    }, {
        "course": {
            "id": 45,
            ,
            "name": "test2".......
        },
        "data": {
            "0": 2,
            "1": 1,
            "4": 1
        }
    },
我需要的是从每个课程中获取名称和数据数组

如何访问这些数据


非常感谢

您可以迭代数组并检索如下值

for (var i = 0 ; i < weekdayarrayA.length; i++) {
     console.log(weekdayarrayA[i].course.name);
     console.log(weekdayarrayA[i].data);
}
for(变量i=0;i
注意:数据不是数组,而是对象。

以下是:

var weekdayaraya=[
{“课程”:{“id”:44,“name”:“test1”},“数据”:{“0”:2,“1”:1,“4”:1},
{“course”:{“id”:45,“name”:“test2”},“data”:{“0”:2,“1”:1,“4”:1}}
];
用于(工作日内的变量i){
风险值项目=工作日的风险值[i];
var课程=item.course;
var courseData=项目数据;
警报(课程名称);

}
对于································。如果有人向
Array.prototype
添加新属性,则此操作将中断。使用常规的for循环,或者现代浏览器中可用的
forEach()
函数。ES6为…of
循环引入了
,因此这也将很快成为一个选项(并且已经在node.js中运行)。@matt browne,我感谢您的评论。但我坚持认为:for…in适用于所有浏览器。如果它不是一个索引为0,1,2的常规数组呢?当然,forEach是更好的解决方案,而for…of是最好的。但是,在所有设备都得到支持时,您必须等待…我认为您可能没有抓住要点。。。如果在运行您的示例之前执行
Array.prototype.foo='foo'
,它实际上会给出一个TypeError,因为item.course.name没有为'foo'定义。并且您必须考虑应用程序中的其他JS代码(包括第三方代码)可能已修改
Array.prototype
。我理解,但为什么要这样做呢?是谁改变了阵列的原型我们可以向原型中添加函数和属性,但它不会改变数组。