open-nomad/ui/app/helpers/dedupe-by-property.js
2023-04-10 15:36:59 +00:00

21 lines
491 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
// Takes an array and a property name and returns a new array with all the duplicates removed.
import { helper } from '@ember/component/helper';
export default helper(function dedupeByProperty([arr], { prop }) {
const seen = new Set();
return arr.filter((item) => {
const val = item[prop];
if (seen.has(val)) {
return false;
} else {
seen.add(val);
return true;
}
});
});