回答編集履歴

8

clean

2022/09/29 06:42

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -28,7 +28,7 @@
28
28
  ```
29
29
 
30
30
  ### 解説
31
- `Array.indexOf(<value>)`は、配列の中に指定したvalueが存在したら、そのインデックス番号を返します。
31
+ `Array.indexOf(value)`は、配列の中に指定したvalueが存在したら、そのインデックス番号を返します。
32
32
  存在しない場合`-1`を返します。
33
33
 
34
34
  ```javascript
@@ -36,6 +36,7 @@
36
36
  arr.indexOf(100) // 0
37
37
  arr.indexOf(400) // -1
38
38
  ```
39
- なのでcurrentValuesの数だけ、`uniqueValues.indexOf(currentValues[i][0]) == -1`をしてやれば、「どれとも一致しない」が判定できます。
39
+ なので、`uniqueValues.indexOf(currentValues[i][0]) == -1`をしてやれば、「どれとも一致しない」が判定できます。
40
40
 
41
+ また今回の場合、`for (let i = 0; i < array.length; i++)`と書くよりも、
41
- また今回の場合、`for (let i = 0; i < currentValues.length; i++)`と書くよりも、`for (let val of array)`というfor...of構文を使ってやった方が、見やすいコードになると思います。
42
+ `for (let val of array)`というfor...of構文を使ってやった方が、見やすいコードになると思います。

7

Add demo url

2022/09/29 06:34

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -1,6 +1,7 @@
1
1
  CurrentValuesのそれぞれ1番目の数値が、UniquValuesのどれとも一致しないCurrentValuesのみ配列に格納する、という処理でしたら`.indexOf()`がおすすめです。
2
2
 
3
3
  ### コード例
4
+ - [デモページ on JSFiddle](https://jsfiddle.net/5nr6jkfs/)
4
5
  ```javascript
5
6
  function splitSrcData() {
6
7
  const uniqueValues = [1, 2, 3];

6

typo

2022/09/29 06:29

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -35,6 +35,6 @@
35
35
  arr.indexOf(100) // 0
36
36
  arr.indexOf(400) // -1
37
37
  ```
38
- なのでcurrentValuesの数だけ、`uniqueValues.indexOf(currentValues[i][0]) !== -1`をしてやれば、「どれとも一致しない」が判定できます。
38
+ なのでcurrentValuesの数だけ、`uniqueValues.indexOf(currentValues[i][0]) == -1`をしてやれば、「どれとも一致しない」が判定できます。
39
39
 
40
40
  また今回の場合、`for (let i = 0; i < currentValues.length; i++)`と書くよりも、`for (let val of array)`というfor...of構文を使ってやった方が、見やすいコードになると思います。

5

コードちょっと修正

2022/09/29 06:28

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -3,37 +3,36 @@
3
3
  ### コード例
4
4
  ```javascript
5
5
  function splitSrcData() {
6
- const uniqueValues = [1,2,3];
6
+ const uniqueValues = [1, 2, 3];
7
7
  const currentValues = [
8
- [0,99,99,99,99],
8
+ [0, 99, 99, 99, 1],
9
- [1,99,99,99,99],
9
+ [1, 99, 99, 99, 99],
10
- [12,99,99,99,99],
10
+ [12, 99, 99, 99, 99],
11
- [2,99,99,99,99],
11
+ [2, 99, 99, 99, 99],
12
- [99,99,99,99,99]
12
+ [99, 99, 99, 99, 99]
13
13
  ];
14
+ let results = [];
14
15
 
15
- let results = [];
16
-
17
- for (let cVals of currentValues) {
16
+ for (const arr of currentValues) {
18
- if (uniqueValues.indexOf(cVals[0]) == -1) {
17
+ if (uniqueValues.indexOf(arr[0]) == -1) { // currentValues[i][0]がuniqueValuesのどれとも一致しなかったら
19
- results.push(cVals);
18
+ results.push(arr); // currentValues[i]を、別の配列に格納する
20
19
  }
21
20
  }
22
-
21
+
23
22
  return results;
24
23
  }
25
24
 
25
+ console.log(splitSrcData());
26
- console.log(splitSrcData()); // [[0, 99, 99, 99, 99], [12, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
26
+ // [[0, 99, 99, 99, 1], [12, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
27
-
28
27
  ```
29
28
 
30
29
  ### 解説
31
- `Array.indexOf(<value>)`は、配列の中にvalueが存在したら、そのインデックス番号を返します。
30
+ `Array.indexOf(<value>)`は、配列の中に指定したvalueが存在したら、そのインデックス番号を返します。
32
31
  存在しない場合`-1`を返します。
33
32
 
34
33
  ```javascript
35
34
  let arr = [100, 200, 300];
36
- arr.indexOf(200) // 1
35
+ arr.indexOf(100) // 0
37
36
  arr.indexOf(400) // -1
38
37
  ```
39
38
  なのでcurrentValuesの数だけ、`uniqueValues.indexOf(currentValues[i][0]) !== -1`をしてやれば、「どれとも一致しない」が判定できます。

4

最初の文修正

2022/09/29 06:23

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -1,4 +1,4 @@
1
- UniquValuesのどれとも一致しないCurrentValuesのみ配列に格納する、という処理でしたら`.indexOf()`がおすすめです。
1
+ CurrentValuesのそれぞれ1番目の数値が、UniquValuesのどれとも一致しないCurrentValuesのみ配列に格納する、という処理でしたら`.indexOf()`がおすすめです。
2
2
 
3
3
  ### コード例
4
4
  ```javascript

3

Modify code

2022/09/29 06:20

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -16,14 +16,14 @@
16
16
 
17
17
  for (let cVals of currentValues) {
18
18
  if (uniqueValues.indexOf(cVals[0]) == -1) {
19
- results.push(cVals[0]);
19
+ results.push(cVals);
20
20
  }
21
21
  }
22
22
 
23
23
  return results;
24
24
  }
25
25
 
26
- console.log(splitSrcData()); // [0, 12, 99]
26
+ console.log(splitSrcData()); // [[0, 99, 99, 99, 99], [12, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
27
27
 
28
28
  ```
29
29
 

2

コードに出力結果追記

2022/09/29 06:13

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -23,7 +23,7 @@
23
23
  return results;
24
24
  }
25
25
 
26
- console.log(splitSrcData());
26
+ console.log(splitSrcData()); // [0, 12, 99]
27
27
 
28
28
  ```
29
29
 

1

ついき

2022/09/29 06:11

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -36,3 +36,6 @@
36
36
  arr.indexOf(200) // 1
37
37
  arr.indexOf(400) // -1
38
38
  ```
39
+ なのでcurrentValuesの数だけ、`uniqueValues.indexOf(currentValues[i][0]) !== -1`をしてやれば、「どれとも一致しない」が判定できます。
40
+
41
+ また今回の場合、`for (let i = 0; i < currentValues.length; i++)`と書くよりも、`for (let val of array)`というfor...of構文を使ってやった方が、見やすいコードになると思います。