質問するログイン新規登録

回答編集履歴

2

コードを修正

2016/07/04 01:08

投稿

yamato_hikawa
yamato_hikawa

スコア2092

answer CHANGED
@@ -1,13 +1,17 @@
1
1
  こんな感じでも出来ました。重複している値を配列化して、それらをピンポイントで削除するアプローチですね。
2
2
 
3
- ```
3
+ ```javascript
4
4
  var arr = [{a:1,b:"h"},{a:1,b:"e"},{a:2,b:"l"},{a:3,b:"l"},{a:1,b:"o"}];
5
5
 
6
6
  var deleteDuplicateVal = function(array, key) {
7
7
  var delArr = array.map(function(e, i) {
8
8
  return e[key];
9
9
  }).filter(function(e, i, array) {
10
+ /* 重複するものを抽出 */
10
11
  return array.indexOf(e) !== i;
12
+ }).filter(function(e, i, array){
13
+ /* 抽出した中での重複削除 */
14
+ return array.indexOf(e) === i;
11
15
  });
12
16
 
13
17
  console.log(delArr); // ["l"]

1

コードの修正

2016/07/04 01:08

投稿

yamato_hikawa
yamato_hikawa

スコア2092

answer CHANGED
@@ -12,11 +12,8 @@
12
12
 
13
13
  console.log(delArr); // ["l"]
14
14
 
15
- var result = array.map(function(e, i) {
15
+ var result = array.filter(function(e, i) {
16
- if (delArr.indexOf(e[key]) !== -1) {
16
+ return delArr.indexOf(e[key]) === -1;
17
- delete e[key];
18
- }
19
- return e;
20
17
  });
21
18
 
22
19
  return result;