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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1496閲覧

特定の配列を内包する配列を検知したい

mihara

総合スコア15

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/07/26 06:38

下の4つの配列がありAで残りの3つを調査、結果がB,Dと出したいです。
A[1,2]
B[1,2,3,4,5]
C[1,3,4,5]
D[1,3,4,2]

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

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

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

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

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

kei344

2016/07/26 06:44

ご自身で書かれたコードを質問文に追記いただいたほうが回答を得られやすいと思います。
guest

回答2

0

ベストアンサー

JavaScript

1function inArrayKeys( arr, keys ) { // ← 指摘いただき、関数名をinから修正 2 return arr.filter( ( ele )=> { return keys.includes( ele ) } ).length === keys.length; 3} 4console.log( inArrayKeys( [ 1, 2, 3, 4, 5 ], [ 1, 2 ]) ); // B ← 指摘いただき、関数名をinから修正 5console.log( inArrayKeys( [ 1, 3, 4, 5 ], [ 1, 2 ]) ); // C ← 指摘いただき、関数名をinから修正 6console.log( inArrayKeys( [ 1, 3, 4, 2 ], [ 1, 2 ]) ); // D ← 指摘いただき、関数名をinから修正

追記:

正解はコメント欄に書かれたコードをごらんあれ。書き直そうとして失敗したコードを自戒のため記録。

JavaScript

1function inArrayKeys( arr, keys ) { 2 return JSON.stringify( arr.filter( ( ele )=> { return keys.includes( ele ) } ).sort() ) === JSON.stringify( keys.sort() ); 3} 4console.log( inArrayKeys( [ 1, 2, 3, 4, 5 ], [ 1, 2 ]) ); // B 5console.log( inArrayKeys( [ 1, 3, 4, 5 ], [ 1, 2 ]) ); // C 6console.log( inArrayKeys( [ 1, 3, 4, 2 ], [ 1, 2 ]) ); // D 7//x console.log( inArrayKeys( [ 1, 1, 3, 4, 2 ], [ 1, 2 ]) ); // [ 1, 1, 2 ] [ 1, 2 ]なので失敗する

投稿2016/07/26 08:03

編集2016/07/26 09:48
kei344

総合スコア69357

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

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

yambejp

2016/07/26 09:08

この場合、arrやkeysの要素はユニークであるという条件が必要ですよね console.log( in( [ 1, 1, 3, 4, 5 ], [ 1, 2 ]) ); がtrueになったり console.log( x_in( [ 1, 3, 4, 5 ], [ 1, 1 ]) ); がfalseになったりします。
kei344

2016/07/26 09:11

指摘ありがとうございます!そうなりますね、抜けていました。ちょっと考えて見ます。
yambejp

2016/07/26 09:13

一応こんな感じなんだと思いますけど <script> function x_in( arr, keys ) { arr=x_unique(arr); keys=x_unique(keys); return arr.filter( ( ele )=> { return keys.includes( ele ) } ).length === keys.length; } function x_unique(arr){ return arr.filter(function (x, i, self) { return self.indexOf(x) === i; }); } console.log( x_in( [ 1, 1, 3, 4, 5 ], [ 1, 2 ]) ); // B console.log( x_in( [ 1, 3, 4, 5 ], [ 1, 1 ]) ); // C console.log( x_in( [ 1, 3, 4, 2 ], [ 1, 2 ]) ); // D </script> ※すみませんinが予約後で引っかかる場合がありそうなので勝手に変えました
kei344

2016/07/26 09:22

> ※すみませんinが予約後 すいません、かなり適当に付けてしまったので・・・。あぁ恥ずかしい。
kei344

2016/07/26 09:46

> think49さん さすがです!Array#reduce がイメージしにくかったのですが、やっと雰囲気がつかめました。ありがとうございます。
think49

2016/07/27 07:19 編集

To: mihara さん そのURLに Polyfill コードが載っています。あるいは、Array#indexOf で書き換えてもいいですね。 2016/07/26 18:33で私が書いたコードですが、Array.from でシャローコピーすると [1,,3,4] -> [1,undefined,3,4] に変換されてしまうので Array#concat に書き換えました(Object.assign でもOK)。 https://jsfiddle.net/j1y9uk3m/1/
mihara

2016/07/27 09:02

Polyfillのってましたね。。。。ご指摘ありがとうございます。 解決いたしました!
guest

0

まぁ両方forで回してもいいかと思いますがとりあえずjoinしてみては?

javascript

1<script> 2var A=[1,2]; 3var data={"B":[1,2,3,4,5],"C":[1,3,4,5],"D":[1,3,4,2]}; 4for(var i in data){ 5 var str=","+data[i].join(",")+","; 6 var flg=true; 7 for(var j=0;j<A.length;j++){ 8 var reg=","+A[j]+","; 9 if(!str.match(reg)){ 10 flg=false; 11 break; 12 } 13 } 14 if(flg) document.write(i); 15} 16</script> 17

投稿2016/07/26 07:23

yambejp

総合スコア114505

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問