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

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

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

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

Q&A

解決済

2回答

356閲覧

Javascript

GokaTokyo

総合スコア66

JavaScript

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

0グッド

0クリップ

投稿2017/11/02 11:50

イメージ説明
理解が全然できなくて、申し訳ございませんが、
図の左通りにどう書けばよろしいでしょうか。
よろしくお願いします。

javascript コード

function findIndexOfStr(array, str) {
([ ], "a") -> -1
}

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/11/02 12:04

がんばろーぜ
m.ts10806

2017/11/02 12:06

何をどうしたくて、何を調べて、どうやってみようとしているのかこれだけでは分かりませんので詳細を記述してください。
kei344

2017/11/02 12:56

適切なタイトルをつけてください。
GokaTokyo

2017/11/02 13:21

各位 ありがとう!!!!
guest

回答2

0

ベストアンサー

ちょっと仕様がはっきりしないのですが
第1引数の配列の中に第2引数の文字列と完全一致するものがあれば、
その最初のkeyの値を返し、ひとつもなければ-1を返すのでしょうか?

※修正:完全一致ではなく部分一致と書いてありましたので修正しておきました

javascript

1function findIndexOfStr(arr, str) { 2 var ret=Array.map(Object.entries(arr).filter(function(i){ 3 //return i[1]===str; /*完全一致*/ 4 return i[1].match(str); /*部分一致*/ 5 }),function(i){ 6 return i[0]; 7 }); 8 return ret.length==0?-1:ret[0]; 9}

※ちょっと効率化すると以下ですが、ちょっと見にくいですかね・・・

javascript

1function findIndexOfStr(arr, str) { 2 return Object.entries(arr).filter(function(i){ 3 return i[1].match(str); 4 }).map(function(i){ 5 return i[0]; 6 })[0]||-1; 7}

実行

javascript

1console.log(findIndexOfStr(["xyz","def","ghi"], "a")); // ->1 2console.log(findIndexOfStr(["abc","def","ghi"], "a")); // ->0 3console.log(findIndexOfStr(["ihg","fed","cba"], "a")); // ->2 4console.log(findIndexOfStr(["bac","abc","cba"], "a")); // ->0 (複数ある先頭) 5 6

投稿2017/11/02 12:44

編集2017/11/02 13:06
yambejp

総合スコア114585

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

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

GokaTokyo

2017/11/03 14:09

コードいただき、誠にありがとうございます。 また、実行したら、失敗になっておりますので、 今、問い合わせ中、回答分かり次第、シェア致します。 よろしくお願いします。
guest

0

JavaScript

1function findIndexOfStr(arr, str) { 2 // return arr.reduce( ( pre, curr, i )=> pre != -1 ? pre : curr.includes( str ) ? i : -1, -1 ); // 微修正 3 return arr.reduce( ( pre, curr, i )=> pre != -1 || !curr.includes( str ) ? pre : i, -1 ); 4} 5```**動くサンプル:**[https://jsfiddle.net/bd6tw2L2/1/](https://jsfiddle.net/bd6tw2L2/1/) 6 7--- 8 9【Array.prototype.reduce() - JavaScript | MDN10[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) 11 12【String.prototype.includes() - JavaScript | MDN13[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/includes](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/includes)

投稿2017/11/02 13:28

編集2017/11/02 14:10
kei344

総合スコア69366

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

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

kei344

2017/11/02 13:29

おわってた。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問