从逗号分隔句

时间:2017-10-25 12:22:43

标签: javascript node.js

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

在我的代码中,我能够检查,但无法完整地完成任务。请让我知道我哪里出错了,我该怎么办呢。

由于

3 个答案:

答案 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. 以逗号为基础拆分数组。
  2. 使用数组的过滤功能过滤汽车名称。
  3. 如果找到任何匹配值,则长度将大于0,输出将打印在控制台上。
  4. 现在,假设只存在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;
&#13;
&#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");
    }   
}