簡體   English   中英

如何從數組中的對象訪問屬性?

[英]How can I access properties from an object within an array?

我試圖訪問數組中的對象的一個​​屬性。 這是我如何設置它。

var 2002 = [{"st_as_str":"01006000102","parm_desc":"ALKALINITY, TOTAL","sub":"ALKALINITY","is_fil":false,"is_reac":false,"date":"2002-09-02","time":"16:45","field_num":70237,"lims_r":"","result":137.0,"val_qual":"","ana_meth":"E3218A","unit":"MILLIGRAM PER LITER"},

{"st_as_str":"01006000102","parm_desc":"ALKALINITY, TOTAL","sub":"ALKALINITY","is_fil":false,"is_reac":false,"date":"2002-09-08","time":"14:30","field_num":70240,"lims_r":"","result":142.0,"val_qual":"","ana_meth":"E3218A","unit":"MILLIGRAM PER LITER"}]
//These two lines are actually one.  I broke them up to make this somewhat readable. Also, this is a portion of the file.

我一直在嘗試訪問這樣的屬性:

alert(2002[0].parm_desc);

如: alert(array[object at this index].thisproperty)雖然它似乎不起作用。 這是我的更多代碼。

    <script>
        function getScript(url, callback) {
           var script = document.createElement('script');
           script.type = 'text/javascript';
           script.src = url;

           script.onreadystatechange = callback;
           script.onload = callback;

           document.getElementsByTagName('head')[0].appendChild(script);
        }

        //this works and I am getting the alerts
        getScript('./analysis_valqualifi.js', function(){
            alert("Analysis Method: " + analysis_method[0][1]);
            alert("Lims_ValQualifi: " + lims_valqualifi[0][1]);
        });

        //this isn't working
        getScript('./2002_results.js', function(){
            alert(2002[0].parm_desc);
        });
    </script>

在前2個警報之后,在我的其他腳本運行之前有15-20秒的延遲,所以我很確定JavaScript正在讀取文件並且我的語法不正確。

你的變量2002是非法的。 如果您直接在Chrome開發者工具控制台中嘗試第一行,它會立即報告以下內容:

var 2002 = [{"st_as_str":"01006000102","parm_desc":"ALKALINITY, TOTAL","sub":"ALKALINITY","is_fil":false,"is_reac":false,"date":"2002-09-02","time":"16:45","field_num":70237,"lims_r":"","result":137.0,"val_qual":"","ana_meth":"E3218A","unit":"MILLIGRAM PER LITER"}, ...

SyntaxError: Unexpected number

如果您只是在前面添加一個字符,例如:

var s2002 = [{"st_as_str":"01006000102","parm_desc":"ALKALINITY, TOTAL","sub":"ALKALINITY","is_fil":false,"is_reac":false,"date":"2002-09-02","time":"16:45","field_num":70237,"lims_r":"","result":137.0,"val_qual":"","ana_meth":"E3218A","unit":"MILLIGRAM PER LITER"}, {"st_as_str":"01006000102","parm_desc":"ALKALINITY, TOTAL","sub":"ALKALINITY","is_fil":false,"is_reac":false,"date":"2002-09-08","time":"14:30","field_num":70240,"lims_r":"","result":142.0,"val_qual":"","ana_meth":"E3218A","unit":"MILLIGRAM PER LITER"}]

這很好用。 有關變量名稱規則的詳細摘要,請參閱此文章

有些要考慮的要點:

變量名不能以數字開頭。 因此,例如將其更改為“data2002”。

JSON對象中的屬性可以是數字,但這會在數組中產生間隙。 您的代碼中沒有此問題,只是將其放在那里。

如果屬性名稱為空格,例如{'Test Mode':true},則可以使用以下語法訪問它:

var testmode = obj['Test Mode'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM