当我想遍历 JSON 对象数组时遇到问题。

问题例如:

  • 它只计算两个(我假设是因为它们是 Object.keys)并且我有两个键。
  • 只有一个值的循环

  • 我的代码:
    var codes = require('./nl.json');
    for (var i = 0, l = Object.keys(codes).length; i <= l; i++) {
        console.log(l) ;
        var areaCodeTest = codes.netherlands[i].areaCode;
        var areaNameTest = codes.netherlands[i].areaName;
    
        it("Search for postal code ", function(){
            var postCode = element(by.id("imysearchstring"));
            postCode.click();
            browser.sleep(1000);
            console.log(areaCodeTest);
            postCode.clear().sendKeys(areaCodeTest);
            browser.sleep(1000);
            console.log("Typed " + areaCodeTest);
        });
    }
    

    我的 Json(简短示例):
    {
    "netherlands": [
      {
        "areaCode": 9401,
        "areaName": "Assen"
      },
      {
        "areaCode": 9402,
        "areaName": "Assen"
      },
      {
        "areaCode": 9403,
        "areaName": "Assen"
      }
     ]
    }
    

    我看过以下答案:

    Size of Object
    Length of Json

    我试过:
    (var i = 0, l = Object.keys(codes).length; i <= l; i++)
    
    (var i = 0, l = Object.keys(codes.netherlands[0]).length; i <= l; i++)
    
    for (var i = 0, l = codes.netherlands.length; i <= l; i++) // uses last areaCode in json file and only loop with that number. It does not start from top.
    

    图片:
    some of my outputs

    预期:
    我想要的是计算 JSON 中的对象数量(不是键/值)

    循环遍历所有数据并将它们分配给 var areaCodeTest = codes.netherlands[i].areaCode;var areaNameTest = codes.netherlands[i].areaName;

    最佳答案

    我通过使用以下方法让它工作:

    var codes = require('./nl.json');
    
    codes.forEach((item) => {
        var areaCodeTest = item.areaCode;
        var areaNameTest = item.areaName;
    
        it("and search for postal code ", function(){
            var postCode = element(by.id("imysearchstring"));
            postCode.click();
            console.log(areaCodeTest);
            postCode.clear().sendKeys(areaCodeTest);
            browser.sleep(1000);
            console.log("Typed " + areaCodeTest);
        });
    }
    

    我不是 100% 的 => 在 foreach 附近意味着什么,但我目前正在研究为什么我的代码有效。如果您知道,请发表评论,以便其他开发人员也学习。

    这让我想起了模因“不确定为什么代码不起作用/不确定代码为什么起作用”

    关于javascript - 对数组的 JSON 对象进行计数和循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57441997/

    10-12 00:08
    查看更多