Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向数组中添加唯一元素_Javascript_Arrays - Fatal编程技术网

Javascript 向数组中添加唯一元素

Javascript 向数组中添加唯一元素,javascript,arrays,Javascript,Arrays,我有一个名为seasons 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;

我有一个名为seasons 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"];
        }
    }
}
var-day=[];

for(var i=1;iYou
break
脱离内部for循环,因此
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"];
    }
}
for(变量i=1;i<300;i++){
var=false;
对于(var j=0;j
或者在if块中执行此操作:

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;
        }
    }
}
for(变量i=1;i<300;i++){
对于(var j=0;j

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

您将
从内部for循环中断开,因此
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"];
    }
}
for(变量i=1;i<300;i++){
var=false;
对于(var j=0;j
或者在if块中执行此操作:

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;
        }
    }
}
for(变量i=1;i<300;i++){
对于(var j=0;j

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

@user10319您也可以用
day[day.length]=seasures[I][“Date”];
替换为
day.push(seasures[I][“Date”];
,这样写起来更简单,也更容易阅读:)@user10319您也可以用
day[day.length]=seasures[I][“Date”]
日期推送(季节[i][“日期]),写起来有点小,读起来也更容易:)