21 lines
491 B
JavaScript
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;
|
|
}
|
|
});
|
|
});
|