最近学习javascript看到这样一段代码
 var sData =
[
{
    name: "a",
    class: [1, 102],
    text: "aaaaaa"
},
{
    name: "b",
    class: [2, 120],
    text: "bbbbb"
},
{
    name: "c",
    class: [3, 122],
    text: "ccccccc"
}
];这样的变量是叫结构体数组吗?
如何给变量sData里的属性name,class,text赋值啊
取值呢?
最好详细点
谢谢了

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <script>
         var sData =
    [
    {
        name: "a",
        _class: [1, 102],
        text: "aaaaaa"
    },
    {
        name: "b",
        _class: [2, 120],
        text: "bbbbb"
    },
    {
        name: "c",
        _class: [3, 122],
        text: "ccccccc"
    }
    ]; for(var i = 0; i < sData.length; i++){
    var o = sData[i];

    for(var name in o){
    if(name == '_class'){
    for(var j = 0; j < o[name].length;j++){
    document.write(name + '第:' + j + '个内容是:' + o[name][j] +'<br>');
    }
    }else
    document.write(name + ':' + o[name] + '<br>')
    }
    }
        </script>
    </body>
    </html>
      

  2.   

    for(var i = 0; i < sData.length; i++){首先循环sData数组,var o = sData[i];
    然后取到当前对象,for(var name in o){
    在用for in循环遍历当前对象if(name == '_class'){
    如果name是_class就是数组for(var j = 0; j < o[name].length;j++){
                        document.write(name + '第:' + j + '个内容是:' + o[name][j] +'<br>');    
                    }  
    遍历o['_class']数组document.write(name + ':' + o[name] + '<br>') 
    不是数组直接输出
      

  3.   

    这是JSON数组,数组的每个元素是JSON对象:
    var sData =
    [
    {
        name: "a",
        class: [1, 102],
        text: "aaaaaa"
    },
    {
        name: "b",
        class: [2, 120],
        text: "bbbbb"
    },
    {
        name: "c",
        class: [3, 122],
        text: "ccccccc"
    }
    ];//取值
    alert(sData[2].text);
    //赋值
    sData[1].class[0] = 222;
    alert(sData[1].class);
      

  4.   

    比如 我取得第二个 _class中的120
    两种写法
    sData[1]["_class"][1]
    sData[1]._class[1]
      

  5.   

    JavaScript是弱类型的,变量sData确实是一个结构体数组,这种写法在JavaScript代码中很常用。
    可以通过 sData[0]['name']  使用数据或者赋值,比如
    sData [0]['name'] = 'AA';
    alert(sData [0]['name']);但是,测试你的代码,因为class字段的存在而不能允许,不知道怎么解释。
    求高手指点。
      

  6.   


    var sInfo = {            "name": a,            "class": [1,102],            "text": "aaaaaa",        };        sData.push(sInfo);
      

  7.   


    class在javascript是保留字。看我1楼代码,我也是在class前面加了个下划线