理解が全然できなくて、申し訳ございませんが、
図の左通りにどう書けばよろしいでしょうか。
よろしくお願いします。
javascript コード
function findIndexOfStr(array, str) {
([ ], "a") -> -1
}
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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総合スコア114585
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 | MDN】 10[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 | MDN】 13[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総合スコア69366
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。