回答編集履歴

3

効率化

2017/11/02 13:06

投稿

yambejp
yambejp

スコア114775

test CHANGED
@@ -32,6 +32,28 @@
32
32
 
33
33
  ```
34
34
 
35
+ ※ちょっと効率化すると以下ですが、ちょっと見にくいですかね・・・
36
+
37
+ ```javascript
38
+
39
+ function findIndexOfStr(arr, str) {
40
+
41
+ return Object.entries(arr).filter(function(i){
42
+
43
+ return i[1].match(str);
44
+
45
+ }).map(function(i){
46
+
47
+ return i[0];
48
+
49
+ })[0]||-1;
50
+
51
+ }
52
+
53
+ ```
54
+
55
+
56
+
35
57
  実行
36
58
 
37
59
  ```javascript

2

調整

2017/11/02 13:06

投稿

yambejp
yambejp

スコア114775

test CHANGED
@@ -36,13 +36,15 @@
36
36
 
37
37
  ```javascript
38
38
 
39
- console.log(findIndexOfStr(["x","y","z"], "a")); // ->1
39
+ console.log(findIndexOfStr(["xyz","def","ghi"], "a")); // ->1
40
40
 
41
- console.log(findIndexOfStr(["a","b","c"], "a")); // ->0
41
+ console.log(findIndexOfStr(["abc","def","ghi"], "a")); // ->0
42
42
 
43
- console.log(findIndexOfStr(["1","2","a"], "a")); // ->2
43
+ console.log(findIndexOfStr(["ihg","fed","cba"], "a")); // ->2
44
44
 
45
- console.log(findIndexOfStr(["a","a","a"], "a")); // ->0 (複数ある先頭)
45
+ console.log(findIndexOfStr(["bac","abc","cba"], "a")); // ->0 (複数ある先頭)
46
+
47
+
46
48
 
47
49
 
48
50
 

1

修正

2017/11/02 12:50

投稿

yambejp
yambejp

スコア114775

test CHANGED
@@ -3,6 +3,10 @@
3
3
  第1引数の配列の中に第2引数の文字列と完全一致するものがあれば、
4
4
 
5
5
  その最初のkeyの値を返し、ひとつもなければ-1を返すのでしょうか?
6
+
7
+
8
+
9
+ ※修正:完全一致ではなく部分一致と書いてありましたので修正しておきました
6
10
 
7
11
 
8
12
 
@@ -12,7 +16,9 @@
12
16
 
13
17
  var ret=Array.map(Object.entries(arr).filter(function(i){
14
18
 
19
+ //return i[1]===str; /*完全一致*/
20
+
15
- return i[1]===str;
21
+ return i[1].match(str); /*部分一致*/
16
22
 
17
23
  }),function(i){
18
24