Angular 从TypeScript中的数组中获取重复对象

Angular 从TypeScript中的数组中获取重复对象,angular,typescript,Angular,Typescript,我的TypeScript代码中有一个对象数组,我需要找出重复的对象。 以下代码为我完成了这项工作: const uniqueObjects = Array.from(new Set(nonUniqueObjects.map((x) => { return JSON.stringify(x); }))).map((y) => JSON.parse(y)); 问题是,当我运行代码时,我从Awesome TypeScript loader中得到一个错误,如下

我的TypeScript代码中有一个对象数组,我需要找出重复的对象。 以下代码为我完成了这项工作:

 const uniqueObjects = Array.from(new Set(nonUniqueObjects.map((x) => {
        return JSON.stringify(x);
      }))).map((y) => JSON.parse(y));
问题是,当我运行代码时,我从Awesome TypeScript loader中得到一个错误,如下所示

“{}”类型的参数不能分配给“string”类型的参数

它可能不喜欢的代码是
.map((y)=>JSON.parse(y))


我还想在不使用var或let的情况下实现这一点,只使用const。

尝试使用spread操作符:

let ununiqueobjects=[{a:1},{b:2},{a:1},{b:2},{c:3}]
const uniqueObjects=[…新集合(ununiqueobjects.map(x=>JSON.stringify(x)))]
.map(y=>JSON.parse(y))

console.log(uniqueObjects)
尝试使用spread操作符:

let ununiqueobjects=[{a:1},{b:2},{a:1},{b:2},{c:3}]
const uniqueObjects=[…新集合(ununiqueobjects.map(x=>JSON.stringify(x)))]
.map(y=>JSON.parse(y))
console.log(uniqueObjects)
此处

var对象=[{
“id”:1,
'name':'A'
}, {
“id”:2,
'name':'B'
}, {
“id”:1,
'name':'A'
}];
var uniqueObjects=new Set();
forEach(e=>uniqueObjects.add(JSON.stringify(e));
uniqueObjects=Array.from(uniqueObjects.map)(e=>JSON.parse(e));
log(JSON.stringify(uniqueObjects))在这里

var对象=[{
“id”:1,
'name':'A'
}, {
“id”:2,
'name':'B'
}, {
“id”:1,
'name':'A'
}];
var uniqueObjects=new Set();
forEach(e=>uniqueObjects.add(JSON.stringify(e));
uniqueObjects=Array.from(uniqueObjects.map)(e=>JSON.parse(e));

log(JSON.stringify(uniqueObjects))找到了解决方案。问题在于

.map((y) => JSON.parse(y));
我的TypeScript编译器似乎不喜欢“y”不是字符串,即使它将它变成了字符串。所以我通过调用toString()解决了这个问题

删除阵列中非唯一对象的完整解决方案:

  const uniqueObjects = Array.from(new Set(nonUniqueObjects.map((x) => JSON.stringify(x)))).map((y) => JSON.parse(y.toString()));

可能仍然需要进行一些错误处理,但情况不同。

找到了解决方案。问题在于

.map((y) => JSON.parse(y));
我的TypeScript编译器似乎不喜欢“y”不是字符串,即使它将它变成了字符串。所以我通过调用toString()解决了这个问题

删除阵列中非唯一对象的完整解决方案:

  const uniqueObjects = Array.from(new Set(nonUniqueObjects.map((x) => JSON.stringify(x)))).map((y) => JSON.parse(y.toString()));

可能仍然需要进行一些错误处理,但情况不同。

仍然会出现相同的错误。我很确定这与TypeScript有关,因为它在Javascript中工作得很好,但仍然会出现同样的错误。我非常确定它与TypeScript有关,因为它在javascriptI中工作得非常好,我应该提到,但我尝试在不使用var或letscript的情况下实现这一点,这只是为了展示一个示例。使用代码查看更新的答案。如果uniqueObjects是常量,则无法将Array.from-part分配给它。你只会得到“Uncaught TypeError:Assignment to constant variable.”你不需要它作为常量。对不起,但事实是我只能使用常量,我知道我应该提到它是可行的,但我尝试在不使用var或let的情况下这样做,这只是为了展示一个示例。使用代码查看更新的答案。如果uniqueObjects是常量,则无法将Array.from-part分配给它。你只会得到“uncaughttypeerror:assignmenttoconstant variable.”你不需要它作为常量。对不起,但事实是我只能使用常量,我知道它是可行的