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是我实际做的。速度对这个问题有影响吗?推似乎不是在推。我不确定这个答案与所述问题有什么关系???这只是推送的另一种方式。依我看,这听起来像是过早的优化。另一方面,较旧的浏览器可能不会实现推送方法,因此这是需要注意的……速度对这个特定问题有影响吗?推似乎不是在推。我不确定这个答案与所述问题有什么关系???这只是推送的另一种方式。依我看,这听起来像是过早的优化。另一方面,较旧的浏览器可能不会实现推送方法,因此这是值得注意的……它没有被跳过:您可以发布更多的代码吗?也许以后会发生什么事?这不是跳过的:你能发布更多的代码吗?也许以后会发生什么事?