我有一个名为season of length 300的对象数组,我尝试搜索某个属性“Date”并将其添加到数组中(如果之前未找到它)。到目前为止我已经
了var day=[];
for (var i=1; i<300; i++) {
var found=false;
for (var j=0; j<day.length; j++) {
if (day[j]==seasons[i]["Date"]) {
found=true;
break;
}
if (!found) {
day[day.length]=seasons[i]["Date"];
}
}
}
我不太确定这出错的地方,并希望得到一些帮助。感谢
答案 0 :(得分:1)
你从内部for循环中break
,所以永远不会执行if (!found)
块。
把它放在内循环之后:
for (var i = 1; i < 300; i++) {
var found = false;
for (var j = 0; j < day.length; j++) {
if (day[j] == seasons[i]["Date"]) {
found = true;
break;
}
}
if (!found) {
day[day.length] = seasons[i]["Date"];
}
}
或者在if-block中执行:
for (var i = 1; i < 300; i++) {
for (var j = 0; j < day.length; j++) {
if (day[j] == seasons[i]["Date"]) {
day[day.length] = seasons[i]["Date"];
break;
}
}
}
我想后一种解决方案更容易理解。