簡體   English   中英

推送復合數組元素

[英]Pushing a composite array element

考慮以下“推送”場景。

(global) var refs = [] ;

var record = {id:1, references: ["12","145"]};
refs.push(record);

盡管如此,當我使用 Chrome 進行調試時,會跳過推送 function 並且 refs 數組最后是空的。 是什么原因?

編輯:

完整的代碼是這樣的:

    gadgets.sciverse.makeRequest(entry['prism:url'], function(obj) {
        var testJson = $.xml2json(obj['text']);
        //  console.log(testJson);

        var tempArr = [];

        if (!testJson) {
            console.log('empty secondary response');
            return ;
        }

        var refSet = testJson ['item']['bibrecord']['tail']['bibliography']['reference'];

        if (!refSet)
            tempArr = [] ;
        else {
            $.each(refSet, function(i, e){
                tempArr.push(e['ref_info']['refd_itemidlist']['itemid']['text']);
            })
        }

        var verySillyTemp = {
            id: pid,
            arr: tempArr
        } ;

        refs.push( verySillyTemp );
    },params);

    console.log(refs);

看起來refs正在異步調用中設置,並且您在設置之前對其進行記錄。

考慮在性能關鍵循環和函數中對 function 調用使用替代原語操作。

您可以使用以下方法。

record[record.length] = id;

這只是一個虛擬示例,您可以通過記錄數組運行for循環。

原始操作可以比 function 調用更快。

語法錯誤:

var record = {id:1, references: ["12","145"]};

暫無
暫無

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

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