【发布时间】:2019-12-17 21:36:33
【问题描述】:
当我想遍历 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.
预期: 我想要的是计算 JSON 中的项目数量(不是键/值)
遍历所有数据并将它们分配给var areaCodeTest = codes.netherlands[i].areaCode;和var areaNameTest = codes.netherlands[i].areaName;
【问题讨论】:
-
你只想要数组的长度吗?如果是这样,在你的情况下应该是
codes.netherlands.length -
@ShakedDahan 然后仅使用一个 areaCode (8245) 循环 - JSON 文件中的最后一条记录。我希望它从顶部开始并遍历每个对象并使用 areaName 和 areaCode
-
为什么不使用更舒适的循环? Object.keys(codes).forEach(function (item) { console.log(item); // key console.log(codes[areaCode]; // value });
标签: javascript json protractor