【问题标题】:How to iterate var in javascript. Array inside array如何在 javascript 中迭代 var。数组里面的数组
【发布时间】:2022-01-24 20:12:45
【问题描述】:

我正在尝试迭代数组的结果,但它不起作用。每个结果最多可以有 20 个结果。我得到了 3 次,但我无法遍历 60 个结果中的每一个


     var responses = [];
     var url = "http://api.crossref.org/works?filter=prefix:10.5090,from-created-date:2020,until-created-date:2020";
   
    async function doAjax(args) {
    const result = await $.ajax({
        url: url,
        type: 'GET',
        data: args
    });

    return result;
    }
    
    const stuff = doAjax('cursor=*').then((data) => {
        responses.push(data.message.items);
        var totalresults = data.message['total-results'];
        var cursor = 'cursor='+data.message['next-cursor'];

        if (totalresults > 20) {
            for (var i = 1; i <= 2; i++) {
                var selector = '' + i;
                selector = 'responses' + selector;
                selector = data.message.items;

                $.when(doAjax(cursor)).done(function(selector){
                    responses.push(selector.message.items);
                })
            }
        }
        console.log(responses);
        $.each(responses, function(index,value){
            console.log(value.DOI); // this line returns undefined
        })
    });

【问题讨论】:

    标签: javascript jquery arrays multidimensional-array


    【解决方案1】:

    由于responses 是数组 的数组,您还必须迭代每个子数组,然后才能访问其元素的各个属性。 p>

    也不需要使用$.each。你可以用array.forEach:

    // demo data
    var responses = [
      [{DOI: 0}, {DOI: 1}, {DOI: 2}],
      [{DOI: 3}, {DOI: 4}, {DOI: 5}],
      [{DOI: 6}, {DOI: 7}, {DOI: 8}]
    ];
    
    responses.forEach(function(array) {
      array.forEach(function(value) {
        console.log(value.DOI);
      });
    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2021-03-07
      • 2019-01-02
      相关资源
      最近更新 更多