Quantcast
Channel: 連想配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 129

[JS]filter / indexOf / pushを使って、連想配列から重複した値を除外する

$
0
0

はじめに

解説なしですが、期待する挙動が確認できたコードだけでも共有しておきます。
何かの役に立ててもらえれば、嬉しいです。

本日のコード

①nameが重複したものを除外
const a = [
    { name: "太郎" ,age: 10 },
    { name: "二郎" ,age: 20 },
    { name: "三郎" ,age: 30 },
    { name: "四郎" ,age: 40 },
    { name: "太郎" ,age: 10 }, // nameもageも重複
    { name: "太郎" ,age: 20 }, // nameだけ重複
    { name: "五郎" ,age: 10 }, // ageだけ重複
];
let values = [];
let b = a.filter(e => {
  if (values.indexOf(e["name"]) === -1) {
    // values に値が存在しない要素のみをフィルタリング
    values.push(e["name"]);
    return e;
  }
});
console.log(b);
});
①実行結果
[ { name: '太郎', age: 10 },
  { name: '二郎', age: 20 },
  { name: '三郎', age: 30 },
  { name: '四郎', age: 40 },
  { name: '五郎', age: 10 } ]
②ageが重複したものを除外
const a = [
    { name: "太郎" ,age: 10 },
    { name: "二郎" ,age: 20 },
    { name: "三郎" ,age: 30 },
    { name: "四郎" ,age: 40 },
    { name: "太郎" ,age: 10 }, // nameもageも重複
    { name: "太郎" ,age: 20 }, // nameだけ重複
    { name: "五郎" ,age: 10 }, // ageだけ重複
];
let values = [];
let c = a.filter(e => {
  if (values.indexOf(e["age"]) === -1) {
    // values に値が存在しない要素のみをフィルタリング
    values.push(e["age"]);
    return e;
  }
});
console.log(c);
②実行結果
[ { name: '太郎', age: 10 },
  { name: '二郎', age: 20 },
  { name: '三郎', age: 30 },
  { name: '四郎', age: 40 } ]

Viewing all articles
Browse latest Browse all 129

Trending Articles