2017-10-25 18 views
1

私のDBからの戻り値を持ち、コンマ区切りのノード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と表示されます。

私のコードでは、私はチェックすることはできますが、彼は単語全体を取得することはできません。どこに間違っているのか教えてください。どうすれば修正できるのですか?

おかげ

+1

文字列をカンマで区切って配列を作成し、その配列で切り捨てられた値を使用します。 – Teemu

答えて

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より大きくなり、出力はコンソールに出力されます。

今のところ、エントリは1つしか存在しないため、carFound [0]はconsole.logで使用されます。フィルター機能で複数の車が見つかった場合に、これをforループに簡単に変換することができます。

+0

また、フォードとメルセデスの場合、後続のスペースを避けるためにコンマとスペースで区切って 'const cars = carsList.split( '、');することができます。 – Walk

+0

それは正しいですはい、あなたはフォードとメルセデスの前に余分なスペースを取り除くことができます。 しかし全体的には、この特定の問題では重要ではないと思います。なぜなら、インクルードはスペースの有無にかかわらず動作するからです。 良いキャッチですが! –

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

0

を:

const cars = "Audi, Ford Ikon, Mercedes Benz"; 
var carsArray = cars.split(","); 
var carType = "Ford"; 

次にキーワードをかどうかを確認するためにリストを反復thのいずれかに含まれるE要素:あなたはこれを試すことができ

for (var make in carsArray): 
    if (make.toLowerCase().includes(carType.toLowerCase())) { 
     console.log(carType + " is the car"); 
    } 
} 
関連する問題