javascript - 具有唯一项的库函数(删除重复项)数组未运行
问题描述
我正在尝试制作一个“库函数”来删除重复的数组条目。我已经写了以下代码段,但它似乎不起作用。任何人都可以帮助修复它吗?
var arr1 = [5, 4, 2, 6, 9, 2, 8, 1, 6];
Array.prototype.unique = function(arr){
var result = [];
arr.forEach(item){
if(result.indexOf(item) === -1){
result.push(item);
}
}
return result;
}
console.log(arr1.unique());
解决方案
我相信您正在尝试做的是以下内容。我所做的小改动是使用 this 关键字来引用数组本身。该函数还需要在 foreach(fn => {}) 内。
Array.prototype.unique = function() {
var result = [];
this.forEach(function(item) {
if(result.indexOf(item) === -1) {
result.push(item);
}
})
return result;
}
制作一个在 foreach 循环中使用箭头函数并使用包含的版本,因此您有一些选择。
Array.prototype.unique = function() {
var result = [];
this.forEach(item => {
if (!result.includes(item)) {
result.push(item);
}
})
return result;
}
推荐阅读
- octave - How read a data file which has both hour format and numeric data in gnu octave?
- java - How to add jar operation using ant
- java - 混合快速排序 + 插入排序 java.lang.StackOverflowError
- reactjs - 选择退出“让开”功能?
- ios - Build submitted for AppStore but only seen on TestFlight
- c# - 如何使用 ITextSharp 将延迟(CMS)签名应用于 pdf 文档
- excel - 将目录中书籍的excel表合并为一张:动态源数据
- javascript - 无法显示来自 API 的数据
- apache-kafka - log.cleaner.dedupe.buffer.size 和 log.cleaner.io.buffer.size 有什么区别?
- python - 用 matplotlib.animation 制作动画