const isExist = acc.find(item => item.id === cur.id); ^ TypeError: acc.find is not a function、
时间: 2024-02-26 22:59:04 浏览: 161
控制台报错object is not a function的解决方法
如果出现 `TypeError: acc.find is not a function` 的错误,那么很有可能是因为 `acc` 不是一个数组。请确保你传入的参数 `arr` 是一个数组类型,例如:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' },
{ id: 2, name: 'Eve' },
];
const uniqueArr = arr.reduce((acc, cur) => {
const isExist = acc.find(item => item.id === cur.id);
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
```
如果你传入的是一个不是数组的类型,那么可以通过将其转换为数组来解决这个问题,例如:
```javascript
const arr = '1,2,3,4,5';
const uniqueArr = Array.from(arr.split(',')).reduce((acc, cur) => {
const isExist = acc.find(item => item === cur);
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
```
在这个例子中,我们首先使用 `split` 方法将字符串转换为数组,通过 `Array.from` 方法将其转换为真正的数组类型。然后执行去重操作,最后输出结果。
阅读全文