回答編集履歴
8
clean
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
```
|
29
29
|
|
30
30
|
### 解説
|
31
|
-
`Array.indexOf(
|
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
|
-
なので
|
39
|
+
なので、`uniqueValues.indexOf(currentValues[i][0]) == -1`をしてやれば、「どれとも一致しない」が判定できます。
|
40
40
|
|
41
|
+
また今回の場合、`for (let i = 0; i < array.length; i++)`と書くよりも、
|
41
|
-
|
42
|
+
`for (let val of array)`というfor...of構文を使ってやった方が、見やすいコードになると思います。
|
7
Add demo url
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
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])
|
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
コードちょっと修正
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,
|
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 (
|
16
|
+
for (const arr of currentValues) {
|
18
|
-
if (uniqueValues.indexOf(
|
17
|
+
if (uniqueValues.indexOf(arr[0]) == -1) { // currentValues[i][0]がuniqueValuesのどれとも一致しなかったら
|
19
|
-
|
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
|
-
|
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(
|
35
|
+
arr.indexOf(100) // 0
|
37
36
|
arr.indexOf(400) // -1
|
38
37
|
```
|
39
38
|
なのでcurrentValuesの数だけ、`uniqueValues.indexOf(currentValues[i][0]) !== -1`をしてやれば、「どれとも一致しない」が判定できます。
|
4
最初の文修正
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
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
|
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
コードに出力結果追記
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
ついき
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構文を使ってやった方が、見やすいコードになると思います。
|