配列にダブルクォートで囲われた動物達がいます。
重複をなくして、さらにダブルクォートを取り除きたい。普通にfilterとmapでやると
let animals = ['"cat"', '"dog"', '"cat"', '"bird"', '"dog"'];
// filterで重複を取り除いてからmapで文字列置き換え
animals = animals.filter(function(element, index, array) {
return array.indexOf(element) === index;
}).map(function(element) {
return element.replace(/"/g, '');
});
=> [ 'cat', 'dog', 'bird' ]
もうちょっとエレガントに書けないかと思い関数化してすっきり!
let unique = function(element, index, array) {
return array.indexOf(element) === index;
};
let replace = function(element) {
return element.replace(/"/g, '');
};
let animals = ['"cat"', '"dog"', '"cat"', '"bird"', '"dog"'];
animals = animals.filter(unique).map(replace);
=> [ 'cat', 'dog', 'bird' ]