首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推送复合数组元素

推送复合数组元素
EN

Stack Overflow用户
提问于 2011-08-13 06:06:38
回答 3查看 1K关注 0票数 0

考虑下面的“推送”场景。

代码语言:javascript
复制
(global) var refs = [] ;

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

然而,当我使用Chrome进行调试时,push函数被跳过,并且refs数组最后为空。原因何在?

编辑:

完整的代码如下所示:

代码语言:javascript
复制
    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);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-13 06:23:17

看起来refs是在异步调用中设置的,而您在设置它之前记录了它。

票数 2
EN

Stack Overflow用户

发布于 2011-08-13 06:10:34

考虑在性能关键的循环和函数中对函数调用使用替代原语操作。

您可以使用以下方法。

代码语言:javascript
复制
record[record.length] = id;

这只是一个虚拟的例子,你可以通过你的记录数组运行for循环。

基元操作可以比函数调用更快。

票数 1
EN

Stack Overflow用户

发布于 2011-08-13 06:08:39

语法错误:

代码语言:javascript
复制
var record = {id:1, references: ["12","145"]};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7046839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档