質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

3回答

2309閲覧

2つの配列の重複を大文字小文字を区別せず、一致する要素を取得したい。

yuki_90453

総合スコア326

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2021/09/14 09:02

#概要
2つの文字列からなる配列において、大文字小文字を区別せず一致する要素を取得したいと考えています。

const patern_A = ['Cat','Apple','iPhone','Black','tea'] const patern_B = ['mens','color','normal','tea','Osaka']

includesやindexOfだと大文字小文字を区別してしまうので上手く行かないと思います。
一応、filterを2重にして、文字列同士を大文字に変換して見ましたが、なぜか一致していない要素がヒットしてしまいます。
もっと良い書き方はないでしょうか?

const result = patern_A.filter((str_A)=> patern_B.filter((str_B)=> str_A.toUpperCase() === str_B.toUpperCase()).length >0)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2021/09/14 09:36

ご提示のコードを試してみましたが、問題なさそうでした。 どのような入力値の時にどのような問題が起きるのか、ご提示いただけますか?
yambejp

2021/09/14 10:50

サンプルだと小文字の'tea'しか一致しないので大文字小文字関係ないのでは?
guest

回答3

0

地道にやってもこんくらいなので、これで要件を再確認してみては?

javascript

1const patern_A = ['Cat','Apple','iPhone','Black','tea'] 2const patern_B = ['mens','color','normal','tea','Osaka'] 3 4const target = patern_B.map(x => x.toUpperCase()) 5let result = [] 6for (y of patern_A) { 7 if (target.includes(y.toUpperCase())) { 8 result.push(y) 9 } 10} 11 12console.log(result)

投稿2021/09/14 10:59

takasima20

総合スコア7464

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

javascript

1const a = ['Cat','Apple','iPhone','Black','tea'] 2const b = ['mens','color','normal','tea','Osaka','aPpLe'] 3const result=a.filter(x=>b.map(y=>y.toUpperCase()).includes(x.toUpperCase())); 4console.log(result);

投稿2021/09/14 10:52

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分なるたけ便利なもん使うて楽したい派なんですわ ➡ サンプル

javascript

1const patern_A = ['Cat', 'tea', 'Apple', 'iPhone', 'Black', 'TEA']; 2const patern_B = ['mens', 'CAT', 'normal', 'TeA', 'Osaka', 'Iphone']; 3 4const dupplicatesIgnoreCase = _.intersectionBy(patern_A, patern_B, s => s.toLowerCase());

投稿2021/09/14 09:35

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問