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

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

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

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

Q&A

解決済

2回答

9346閲覧

JS indexOf 複数要素が存在する場合は??

kazoogon

総合スコア281

JavaScript

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

0グッド

0クリップ

投稿2018/04/14 02:46

JSにて

var week = [true, false, false, true, true, false, true]

のような配列でtrueのindexの値を取り出したいと思っております。

https://www.sejuku.net/blog/22228 例えばこちらのサイトを参考にしましたが、indexOfは仕様上最初の1つしか要素を取り出さない
→複数取り出そうとすると以下のような書き方になる

var result1 = week.indexOf( true ); var result2 = week.indexOf( true, result1 + 1 ); ・ ・ ・ (続く)

この書き方だとコードが長くなるので、indexOfの複数要素をreturnしてくれるメソッドを探しましたが見当たりません。JSではやはり存在しないのでしょうか? また何か他に良い方法があればそちらも教えていただきたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

Array.prototype.reduce辺りで

JavaScript

1[true, false, false, true, true, false, true] 2 .reduce((arr, val, i) => (val && arr.push(i), arr), []); 3//[ 0, 3, 4, 6 ]

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

投稿2018/04/14 02:55

defghi1977

総合スコア4756

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

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

0

ベストアンサー

var list = [true, false, true, false, false]; var result = list.filter(function(value) { return value === true; }) console.log(result); // [ true, true ]

参考

Array.prototype.filter()

引数として与えられたテスト関数を各配列要素に対して実行し、それに合格したすべての配列要素からなる新しい配列を生成します。

修正

const list = [true, false, true, false, false]; const result = list.reduce(function(accumulator, currentValue, index) { if (currentValue === true) { accumulator.push(index); } return accumulator; }, []) console.log(result) // [ 0, 2 ]

質問を読み間違えていたので修正版を追記しました。(修正している間にdefghi1977さんが回答をされていましたので、そちらを参考になさって下さいませ)

Array.prototype.reduce

投稿2018/04/14 02:52

編集2018/04/14 03:02
HayatoKamono

総合スコア2415

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

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

kazoogon

2018/04/14 03:43

回答ありがとうございました、解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問