質問編集履歴
2
for文でグルグル回したら一応動いたので追記。でもまだ無駄が多い気がします。。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
二次元配列で、中の配列の特定keyに対するvalueが重複していた時に
|
2
2
|
|
3
3
|
そのvalueを持つもの全てを削除したいです。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
少しコード直してみて、動くには動いたのですが
|
8
|
+
|
9
|
+
とても無駄が多いように思っているので良い方法が知りたいです。
|
4
10
|
|
5
11
|
|
6
12
|
|
@@ -38,7 +44,7 @@
|
|
38
44
|
|
39
45
|
|
40
46
|
|
41
|
-
↓↓
|
47
|
+
↓↓一応これでできたけど、無駄がすごく多いきがする...
|
42
48
|
|
43
49
|
```JavaScript
|
44
50
|
|
@@ -64,6 +70,28 @@
|
|
64
70
|
|
65
71
|
});
|
66
72
|
|
73
|
+
|
74
|
+
|
75
|
+
var compArr = [];
|
76
|
+
|
77
|
+
for(i=0; i<arr.length; i++){
|
78
|
+
|
79
|
+
var flg = false;
|
80
|
+
|
81
|
+
for(j=0; j<dubble.length; j++){
|
82
|
+
|
83
|
+
if(arr[i]["b"] == dubble[j]){
|
84
|
+
|
85
|
+
flg = true;
|
86
|
+
|
87
|
+
}
|
88
|
+
|
89
|
+
}
|
90
|
+
|
91
|
+
if(!flg) compArr.push(arr[i]);
|
92
|
+
|
93
|
+
}
|
94
|
+
|
67
95
|
```
|
68
96
|
|
69
97
|
|
1
コメントいただいた、重複しているbが何かを取り出すところまで追記しました!
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,6 +38,36 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
+
↓↓重複するbを探して一度抜き出したところ
|
42
|
+
|
43
|
+
```JavaScript
|
44
|
+
|
45
|
+
var arr = [{a:1,b:"h"},{a:1,b:"e"},{a:2,b:"l"},{a:3,b:"l"},{a:1,b:"o"}]
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
// 一度bだけ取り出して、重複しているものを探す
|
50
|
+
|
51
|
+
var check = [];
|
52
|
+
|
53
|
+
for(i=0; i<arr.length; i++){
|
54
|
+
|
55
|
+
check.push(arr[i]["b"]);
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
var dubble = check.filter(function(x, i, arr){
|
60
|
+
|
61
|
+
// check中のものが配列の中で最初にhitして、別でもhitする場合だけ抽出
|
62
|
+
|
63
|
+
return arr.indexOf(x) === i && i !== arr.lastIndexOf(x);
|
64
|
+
|
65
|
+
});
|
66
|
+
|
67
|
+
```
|
68
|
+
|
69
|
+
|
70
|
+
|
41
71
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
42
72
|
|
43
73
|
jQueryなどが使えないので、素の状態で書きたいです。
|