【问题标题】:I need to loop this array我需要循环这个数组
【发布时间】:2018-08-16 08:51:23
【问题描述】:

我使用 ajax 从 Economic 获取一个数组,我想循环它。数组(排序):

    {   
  "collection": [  
    { "customerNumber": 1, "email": "jo+billing@test.com", "name": "Tester Test" }  
    , { "customerNumber": 2, "name": "Demo Name" }  
    ]  
    , "metaData": { "more array" }  
    , "pagination": { "more array"}  
    , "self": "some url"   
    }

我认为我需要使用的 jquery 但给我一个错误:(TypeError: cannot use 'in' operator to search 'length' in '{ “收藏……”)

  $.ajax({}).always(function (data) {  
        var options = $('#example').attr('options');  
        var substr = JSON.stringify(data, null, 4);  
//-----------loop part------------  
        $.each((substr), function(i, val1) {
            $.each(val1.customerNumber, function(a, val3) {  
                var CustInfo = val1[a]["name"] + " " + val1[a]["email"];  
                options[options.length] = new Option(CustInfo, val1[a]["customerNumber"]);  
            });  
        });  
    });  

我只对“收藏”中的值感兴趣,我想要一个包含客户信息的选择框。像这样:

<select>
    <option value="1">Tester Test jo+billing@test.com</option>
    <option value="2">Demo Name</option>
</select>

【问题讨论】:

  • JSON.stringify - 你为什么要把它变成一个字符串?你想迭代 options.collection,而不是它的字符串表示。

标签: javascript jquery arrays loops


【解决方案1】:

首先,您不必使用JSON.stringify() 将您的响应对象data 转换为您无法循环遍历属性的字符串。

我只对“收藏”中的值感兴趣。

然后不需要两个循环,只需使用data.collection

$.ajax({}).always(function (data) {  
    var options = $('#example').attr('options');

    $.each((data.collection), function(i, obj) {
        var CustInfo = obj["name"] + " " + obj["email"];  
        options[options.length] = new Option(CustInfo, obj["customerNumber"]);
    });  
});  

data = {
  "collection": [{
    "customerNumber": 1,
    "email": "jo+billing@test.com",
    "name": "Tester Test"
  }, {
    "customerNumber": 2,
    "name": "Demo Name"
  }],
  "metaData": [],
  "pagination": [],
  "self": "some url"
};

$.each((data.collection), function(i, val1) {
  var CustInfo = val1["name"] + " " + val1["email"];
  console.log(CustInfo, val1["customerNumber"]);
});
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

  • 谢谢你的作品。我专注于需要两个或树循环,我失去了注意力并需要帮助。
  • 很高兴我能帮到兄弟。
猜你喜欢
  • 2013-06-03
  • 2022-01-08
  • 2019-06-07
  • 2021-02-06
  • 2017-11-26
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多