###実現したいこと
Javascriptである配列1が別の配列2に含まれているかどうかを調べたいです。
例えば
var key1 = [11,12,13]が
var key2 = [11,12,13,14,15,16,17]に含まれているか
(この場合はTrue)
var key1 = [11,12,22]が
var key2 = [11,12,13,14,15,16,17]に含まれているか
(この場合はfalse)
を返すためにはどうすればいいでしょうか?
###試したこと
Array.everyやindexOfなどを使ってみましたがどれも失敗しました
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
順番が関係ないのでしたら,
js
1key1.every(key => key2.includes(key));
でもできるかと。
投稿2018/01/14 08:00
総合スコア4267
0
こういうことでしょうか。
JavaScript
1const arr = [11,12,13,14,15,16,17]; 2const tgt = [11,12,13]; 3let res = tgt.every( e => arr.some( a => a === e ) ); 4console.log( res ); 5```**動くサンプル:**[https://jsfiddle.net/tsm4sjmr/](https://jsfiddle.net/tsm4sjmr/)
投稿2018/01/14 07:55
総合スコア69407
0
ベストアンサー
こんにちは。
以下のように toString
してからの indexOf
でどうでしょう?
javascript
1var key1 = [11,12,13] 2 3var key2 = [11,12,13,14,15,16,17] 4 5var included = (key2.toString().indexOf(key1.toString()) >= 0); 6 7console.log(included) // true 8 9key1 = [11,12,22] 10included = (key2.toString().indexOf(key1.toString()) >= 0); 11 12console.log(included) // false
以上参考になれば幸いです。
追記
上記の回答は、配列を toString()したときに得られる文字列の形式によっては
意図した判定をしてくれない可能性もあります。
私が確認したのは、以下のようにコンソールからのnode
です。
追記2
コメントにも書きましたが
javascript
1const included = (key1.filter(e => (key2.indexOf(e) >= 0)).length == key1.length)
でいかがでしょう?
つまり、 key1
がkey2
に含まれるのであれば、key1
から、 key2
に含まれない
要素を除去するフィルターを通しても、要素は1つも減らないので、配列の長さが変わらないはず、
という方法でチェックします。
投稿2018/01/14 06:43
編集2018/01/14 07:46総合スコア9058
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 07:33
2018/01/14 07:42
2018/01/14 07:48
2018/01/14 07:53
0
気になるのは
var key1 = [11,12,17]が
var key2 = [11,12,13,14,15,16,17]に
含まれるのかどうかがわかりません。順番は関係ないのでしょうか?
これが含まれないなら私もjun68ykt氏と同じで文字列に直してindexOfすればいいと思います。
失礼ながらコードを拝借。joinメソッドで。
javascript
1var key1 = [11,12,13] 2 3var key2 = [11,12,13,14,15,16,17] 4 5var included = (key2.join(',').indexOf(key1.join(',')) >= 0); 6 7console.log(included)
当然順番が関係ないのならこのやり方は無理です。
投稿2018/01/14 07:28
総合スコア3828
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 07:31
2018/01/14 07:33
2018/01/14 07:34
2018/01/14 07:35
2018/01/14 07:51
2018/01/14 07:57
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。