2017-02-20 6 views
0

現在、この問題があります。問題に固有の答えが見つからないようです。配列から別の配列を使用して情報を検索

Array1 = ["item1", "item2", "item3", "item4", "item5"] 
Array2 = ["item2", "item5"] 

私はarray1内の情報を使用してarray2を検索しようとしています。出力

ARRAY1へ

このため

例がITEM2あり、誰も私を助けることができる場合は、[1]

、ありがとうARRAY1です。

+0

を行うには、配列のメソッドが含まれて使用することができますなぜあなたの例の出力言及は ''「item5」しないのですか?同じ文字列が 'Array1'で複数回出現する可能性はありますか?これまでに何を試しましたか?私は 'Array2'で単純な' for'ループを考えています.'Array1.indexOf() 'を呼び出すだけで、簡単に十分な作業ができます。あなたの質問が "私にとって全てのことをコードしてください"なら、JSチュートリアルがあります。 。 – nnnnnn

+0

あなたの質問は何ですか?あなたは単に配列に関する事実を述べただけです。 –

答えて

2
Array2.forEach((e) => { 
    const indexOfE = Array1.indexOf(e) 
    if (indexOfE > -1) { 
     console.log(`Array1 has ${e} and is at Array1[${indexOfE}]`) 
    } 
}) 

あなたが支援するforEachindexOf、およびtemplate literalsで見ることができあなたはこのコードを理解しています。

Array2.forEach((e) => { 
    Array1.forEach((f, i) => { 
     if (f.toLowerCase().includes(e)) { 
      console.log(`Array1 has ${e} and is at Array1[${i}]`) 
     } 
    }) 
}) 

チェックString.prototype.includesthis answerを:あなたはストリングとして配列2の要素を含む配列1の要素をチェックしたい場合は、その後のことができます、コメントで質問に答える

編集

別のStringの部分文字列を見つける方法の詳細は、

+0

優れた回答。ありがとうございました。一つの質問。 'Array1'の中でどのようにしているのかに関わらず、特に' Array2'検索の方が単語を見つけることができるのでしょうか?インクルードまたはインクルードメソッドによく似ています。たとえば、「largeitem1」で、「Array2」に「item1」があるとします。 – UndefinedUsername

+0

@UndefinedUsernameはい、答えを編集します。 –

0

あなただけの配列1が配列2からの要素は、各要素のためのindexOfを呼び出すARRAY2を反復含まれているかを知りたい場合は、次の

Array2.map((el => { 
    if (Array1.indexOf(el) !== -1) { 
     console.log('Array 1 contains ' + el); 
    } 
})); 
+1

'.forEach()'は '.map()'よりも良い選択です。結果は同じですが、 '.map()'はあなたが何かをマッピングしていることを意味します。あなたはそうではありません。 – nnnnnn

+0

はい、あなたは正しいです。私は習慣から地図を選ぶ傾向がありますが、ここではforeachが良いです。 –

0

これはコードです:

var Array1 = ["item1", "item2", "item3", "item4", "item5"]; 
var Array2 = ["item2", "item5"]; 
for (var i = 0; i <Array2.length; i++) { 
if (Array1.indexOf(Array2[i])>-1) { 
console.log("Array1 has "+Array2[i]+" and is at Array1["+Array1.indexOf(Array2[i]) +"]") 
    } 
} 
0

const Array1 = ["item1", "item2", "item3", "item4", "item5"]; 
const Array2 = ["item2", "item5"]; 

const res = R.intersection(Array1, Array2); 
console.log(res); 

hereが同じでlodashを使用して達成することができ、コードの反発

で次のように、2つの配列の交点を見つけることRamdajsができ

const Array1 = ["item1", "item2", "item3", "item4", "item5"]; 
const Array2 = ["item2", "item5"]; 
const res = _.intersection(Array1, Array2) 
console.log(res); 

hereは、ロダッシュ用のjsfiddleです。

またはあなたが同じ

const Array1 = ["item1", "item2", "item3", "item4", "item5"]; 
 
const Array2 = ["item2", "item5"]; 
 
const res = Array1.filter(curr=>Array2.includes(curr)); 
 
console.log(res);

+1

,,あなたはラムダに夢中です。 –

関連する問題