我正在编写一个节点js代码,该代码具有来自我的数据库的返回值,并以逗号分隔,结果如下所示。
const carsList = "Audi, Ford Ikon, Mercedes Benz";
var carType = "Ford";
if (carsList.toLowerCase().indexOf(carType.toLowerCase()) > -1) {
console.log(carType + " is the car");
}
此处我可以将输出设为Ford is the car
。
但我想要如下。
Ford Ikon is the car
。
简单来说,如果我说Mercedes
或Benz
,则应该打印Mercedes Benz is the car
。同样,如果我说Ford
或Ikon
,则应打印Ford Ikon is the car
。
在我的代码中,我能够检查,但无法完整地完成任务。请让我知道我哪里出错了,我该怎么办呢。
由于
答案 0 :(得分:3)
你可以试试这个:
const carsList = "Audi, Ford Ikon, Mercedes Benz";
const cars = carsList.split(',');
let carType = 'Ford';
let carFound = cars.filter(car => car.includes(carType));
if (carFound.length) {
console.log(carFound[0] + " is the car");
}
说明:
现在,假设只存在1个条目,因此在console.log上使用了carFound [0]。如果在过滤函数中找到多个汽车,这很容易转换成for循环。
答案 1 :(得分:1)
试试这个:
const cars = "Audi, Ford Ikon, Mercedes Benz";
var carsArray = cars.split(',');
const manufacturerName = 'Ford';
searchForCar(manufacturerName,carsArray);
const modelName = 'Ikon';
searchForCar(modelName,carsArray);
function searchForCar(needle,haystack){
for(var i =0;i<haystack.length;i++){
if(haystack[i].indexOf(needle) !== -1){
console.log(haystack[i].trim() + " is the car");
return;
}
}
}
&#13;
答案 2 :(得分:0)
尝试将字符串拆分为数组:
const cars = "Audi, Ford Ikon, Mercedes Benz";
var carsArray = cars.split(",");
var carType = "Ford";
然后遍历列表以检查关键字是否包含在任何元素中:
for (var make in carsArray):
if (make.toLowerCase().includes(carType.toLowerCase())) {
console.log(carType + " is the car");
}
}