キーバリューペアアレイ帆の重複を見つける方法
-
20-12-2019 - |
質問
私は以下のような配列を持っています。
[emails] => Array (
[0] => Array (
[a] => a@a.com
[is_verified_a] => 1
)
[1] => Array (
[b] => a@a.com
[is_verified_b] => 1
)
),
.
この配列で重複を見つける必要がありますが、キーは異なり、aとbは同じEメール 'a@a.com'を持ちます。
すなわち、この配列の重複をチェックし、別の変数に値 'a@a.com'だけを必要とする必要があります。_.UNIQまたは他のアンダースコア関数を使用して見つける方法はありますか?
助けてください。たくさんあります。
解決
あなたがやりたいことは明確ではありません。ただし、JavaScriptを使用しているため、配列は次のようになります。
var emails = [
{
email: "a@a.com",
verified: true,
key: "a"
},
{
email: "a@a.com",
verified: true,
key: "b"
}
];
.
オブジェクト内のキーを別々にエンコードすることは意味がありません(特にプロパティ名ではありません)。
配列から重複を削除するために、一般的なremoveDuplicatesBy
関数を作成できます。
function removeDuplicatesBy(comparator, array) {
var length = array.length;
var unique = [];
for (var i = 0; i < length; i++) {
var element = array[i];
var isUnique = true;
for (var j = 0; j < i; j++) {
if (comparator(element, array[j])) {
isUnique = false;
break;
}
}
if (isUnique) unique.push(element);
}
return unique;
}
.
次のようにemails
アレイに重複を削除できます。
var uniqueEmails = removeDuplicatesBy(function (a, b) {
return a.email === b.email && a.verified === b.verified;
}, emails);
.
あなたがあなたのオブジェクトに鍵を維持する必要があるなら、あなたはおそらく何か間違っていることをしています。あなたはあなたのコードの再構築を検討するべきです。
所属していません StackOverflow