向数组添加唯一元素

时间:2013-11-09 14:39:35

标签: javascript arrays

我有一个名为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"];
        }
    }
}

我不太确定这出错的地方,并希望得到一些帮助。感谢

1 个答案:

答案 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;
        }
    }
}

我想后一种解决方案更容易理解。