从逗号分隔的句子中select整个单词

我正在写一个节点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

用简单的话来说,如果我说MercedesBenz ,就应该打印Mercedes Benz is the car 。 同样,如果我说FordIkon ,它应该打印Ford Ikon is the car

在我的代码中,我能够检查,但无法得到他整个字。 请让我知道我哪里错了,我该如何解决这个问题。

谢谢

你可以试试这个:

 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. 在逗号的基础上拆分数组。
  2. 使用数组的过滤function来过滤汽车名称。
  3. 如果find任何匹配的值,则长度将大于0,并且输出将被打印在控制台上。

现在,假定只有1个条目存在,因此在console.log中使用了carFound [0]。 如果在过滤function中find多个车辆,则可以轻松地将其转换为for循环。

尝试这个:

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

尝试将string分割成一个数组:

 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"); } }