[英]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.