Javascript 推送复合数组元素
考虑以下“推送”场景Javascript 推送复合数组元素,javascript,arrays,push,Javascript,Arrays,Push,考虑以下“推送”场景 (global) var refs = [] ; var record = {id:1, references: ["12","145"]}; refs.push(record); 然而,当我使用Chrome进行调试时,push函数被跳过,并且refs数组最后是空的。原因是什么 编辑: 完整代码如下所示: gadgets.sciverse.makeRequest(entry['prism:url'], function(obj) { var te
(global) var refs = [] ;
var record = {id:1, references: ["12","145"]};
refs.push(record);
然而,当我使用Chrome进行调试时,push函数被跳过,并且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);
语法错误:
var record = {id:1, references: ["12","145"]};
语法错误:
var record = {id:1, references: ["12","145"]};
考虑对性能关键循环和函数中的函数调用使用替代原语操作 您可以使用以下方法
record[record.length] = id;
这只是一个虚拟示例,您可以在记录数组中运行for
循环
基元操作可以比函数调用更快。考虑在性能关键循环和函数中,对函数调用使用替代基元操作 您可以使用以下方法
record[record.length] = id;
这只是一个虚拟示例,您可以在记录数组中运行for
循环
基本操作可能比函数调用快。看起来像是在异步调用中设置了
refs
,您在设置之前记录了它。看起来像是在异步调用中设置了refs
,您在设置之前记录了它。对不起,我拼错了。id:1是我实际做的。对不起,我拼错了。id:1是我实际做的。速度对这个问题有影响吗?推似乎不是在推。我不确定这个答案与所述问题有什么关系???这只是推送的另一种方式。依我看,这听起来像是过早的优化。另一方面,较旧的浏览器可能不会实现推送方法,因此这是需要注意的……速度对这个特定问题有影响吗?推似乎不是在推。我不确定这个答案与所述问题有什么关系???这只是推送的另一种方式。依我看,这听起来像是过早的优化。另一方面,较旧的浏览器可能不会实现推送方法,因此这是值得注意的……它没有被跳过:您可以发布更多的代码吗?也许以后会发生什么事?这不是跳过的:你能发布更多的代码吗?也许以后会发生什么事?