下の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ページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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総合スコア69357
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/26 09:08
2016/07/26 09:11
2016/07/26 09:13
2016/07/26 09:22
2016/07/26 09:33
2016/07/26 09:46
2016/07/27 06:45 編集
2016/07/27 07:19 編集
2016/07/27 09:02
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
総合スコア114505
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。