87,996
社区成员
发帖
与我相关
我的任务
分享思路:使用indexOf函数查找元素的性质,将不重复的元素赋值给新数组
// 数组去重 for循环
function quchong(xingcan) {
var b = [];
for (var i = 0; i < xingcan.length; i++) {
//数组元素遍历
var c = xingcan[i];
if (b.indexOf(c) === -1) {
//判断是否含有此元素
b.push(c); //若无此元素则添加
}
}
return b; //返回去重后的数组
}
var arr = ["小高", "小高", "小魏", "小张", "小刘", "小张", "小程"];
quchong(a);
console.log("原数组为:", a);
console.log("去重后数组为:", quchong(a));
思路:比较相邻元素,将相同(等)后一个的元素删除,得到新数组。
// splice删除元素 数组去重
var a = ["小高", "小高", "小魏", "小张", "小刘", "小张", "小程"];
function quchong(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
quchong(a);
console.log(a);
思路:使用filter函数属性结合indexOf返回的下标判断是否相等(若相等则为该元素首次出现),若相等,则满足条件则返回值是true,把满足条件的当前遍历元素返回,并添加到生成的新数组中去。
// 用filter函数去重
var a = [1, 3, 2, 1, 4, 5, 5, 3];
function quchong(myarr) {
var b = myarr.filter(function (item, i) {
var a = myarr.indexOf(item);
if (a === i) {
return item;
}
});
return b;
}
console.log(quchong(a));
// 简写
var a = [1, 3, 2, 1, 4, 5, 5, 3];
function quchong(myarr) {
var b = myarr.filter(function (item, i) {
return myarr.indexOf(item) === i;
});
return b;
}
console.log(quchong(a));