Javascript 通过数组的JSON对象进行计数和循环
当我想在JSON对象数组中循环时会遇到问题 问题,如:Javascript 通过数组的JSON对象进行计数和循环,javascript,json,protractor,Javascript,Json,Protractor,当我想在JSON对象数组中循环时会遇到问题 问题,如: 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].area
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);
});
}
{
"netherlands": [
{
"areaCode": 9401,
"areaName": "Assen"
},
{
"areaCode": 9402,
"areaName": "Assen"
},
{
"areaCode": 9403,
"areaName": "Assen"
}
]
}
(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.
- 它只计算了两个键(我假设是因为它们是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);
});
}
{
"netherlands": [
{
"areaCode": 9401,
"areaName": "Assen"
},
{
"areaCode": 9402,
"areaName": "Assen"
},
{
"areaCode": 9403,
"areaName": "Assen"
}
]
}
(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.
我看过的答案如下:
及
我试过:
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);
});
}
{
"netherlands": [
{
"areaCode": 9401,
"areaName": "Assen"
},
{
"areaCode": 9402,
"areaName": "Assen"
},
{
"areaCode": 9403,
"areaName": "Assen"
}
]
}
(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.
(var i=0,l=Object.keys(code).length;i您需要访问循环中的实际键才能访问code[key]
简化版的for()
循环,为对象键存储变量,或使用for in
循环
const keys=Object.keys(代码)
for(设i=0;i
常量代码={
“荷兰”:[{
“区域代码”:9401,
“区域名称”:“Assen”
},
{
“区域代码”:9402,
“区域名称”:“Assen”
},
{
“区号”:9403,
“区域名称”:“Assen”
}
]
}
试试这个我给你一个例子
const object1 = {
a: 'somestring',
b: 42,
c: false
};
var length = (Object.keys(object1).length);
请参阅此链接:我使用以下方法使其工作:
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附近的=>
意思的人,但我目前正在研究我的代码为什么能工作。如果你知道,请发表评论,以便其他开发人员也能了解
这让我想到了“不确定为什么代码不起作用/不确定为什么代码起作用”你只想知道数组的长度吗?如果是的话,你的case@ShakedDahan然后它只使用一个区号(8245)循环-JSON文件中的最后一条记录。我希望它从顶部开始,遍历每个对象,并使用areaName和areaCode为什么不使用更舒适的循环?object.keys(codes).forEach(函数(项){console.log(项);//key console.log(代码[areaCode];//value});