如何检查数组是否包含特定项

时间:2018-06-05 19:13:50

标签: typescript

以下代码给出以下错误 " [I]" in" if(i == ingredients [i])" 错误:   element隐含地有一个' any'类型因为索引表达式不是   类型'类型' 码:     让成分= ["火腿","洋葱","番茄"];     let sandwichhas = function(ingredients:string []){         for(let i of ingredients){             if(i == ingredients [i]){                 返回true;             }         }     }     if(snd(" tomato")&& snd(" onion")){       console.log("三明治有西红柿和洋葱")     } else {        console.log("三明治没有西红柿和洋葱")     } 在下面的if语句中,有一个错误说:   类型""番茄"'不能分配给类型的参数   '串[]&#39 ;.      洋葱"""洋葱"'不能分配给类型的参数   '串[]&#39 ;. 这是什么解决方法?

1 个答案:

答案 0 :(得分:1)

我建议您将代码修改为以下内容:

let ingredients = ["ham", "onion", "tomato"];
let snd = function (item) {
    for (let i = 0; i <= ingredients.length; i++) {

        if (item === ingredients[i]) {
            return true;
        }
    }
}

if (snd("tomato") && snd("onion")) {
    console.log("Sandwich has tomatos and onions")
} else {
    console.log("Sandwich has no tomatos and onions")
}

函数参数设置为ingredient,而不是您传递的字符串参数,例如“tomato”和“onion”。它们是“字符串”类型,它是成分[],现在是一个数组。我在迭代中也被错误地使用了。