Javascript 创建函数将对象添加到if语句中具有多个条件的数组中

Javascript 创建函数将对象添加到if语句中具有多个条件的数组中,javascript,arrays,loops,if-statement,javascript-objects,Javascript,Arrays,Loops,If Statement,Javascript Objects,我试图创建一个函数,将新的动物对象添加到现有的动物数组中。除了添加新对象3次之外,代码似乎工作正常。我猜这一定和if语句中的3个条件有关。我不知道该如何编写它,使其只添加一次新元素 var pig={ 品种:"猪",, 姓名:'鲍勃', 噪音:['oink','snort','fart','squer'] } //我的职能 //o向动物数组添加新动物 //c接受2个参数,必须检查唯一名称、名称属性>0、物种属性>0 //“功能添加(动物,动物){”签名 功能添加(动物,动物){ 对于(变量i=

我试图创建一个函数,将新的动物对象添加到现有的动物数组中。除了添加新对象3次之外,代码似乎工作正常。我猜这一定和if语句中的3个条件有关。我不知道该如何编写它,使其只添加一次新元素

var pig={
品种:"猪",,
姓名:'鲍勃',
噪音:['oink','snort','fart','squer']
}
//我的职能
//o向动物数组添加新动物
//c接受2个参数,必须检查唯一名称、名称属性>0、物种属性>0
//“功能添加(动物,动物){”签名
功能添加(动物,动物){
对于(变量i=0;i0)&&&(animal.species.length>0)&&&(animal.name!==animals[i].name)){
动物。推(动物);
}
}
}
//控制台日志(动物)

添加(动物,猪)
您可以删除for循环,并使用“find”方法在数组中搜索具有所提供动物名称的动物

function add(animals, animal) {
    const animalExists = animals.find((a) => a.name === animal.name);
    if ((!animalExists) && (animal.name.length > 0) && (animal.species.length > 0)) {
        animals.push(animal);
    }
}

如果您在注释行的某一点上记录
animals
,那就太早了。您需要在调用
add(animals,pig)
后进行记录。您还需要定义
animals
。请阅读有关格式化代码的帮助。谢谢!!这很有效