for循环 + indexOf()方法 + push()方法
解析: 通过 for循环
遍历原始数组,然后通过indexOf()
方法判断元素的索引是否重复存在,如果没有就通过 push()
方法将其添加到新数组当中
let arr = ['aa','bb','cc','aa'];
let newArr = [];
for(var i = 0; i < arr.length; i++) {
// indexOf()方法返回在数组中找到给定元素的第一个索引,若不存在,返回 -1
// 判断是否在newArr数组中存在 1是存在,-1是不存在
if(newArr.indexOf(arr[i]) == -1) {
// push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
// 如果不存在,就追加到newArr里
newArr.push(arr[i]);
}
}
console.log(newArr) // ['aa', 'bb', 'cc']
forEach循环 + indexOf() + push()
解析: 通过 forEach循环
遍历原始数组,然后通过indexOf()
方法判断元素的索引是否重复存在,如果没有就通过 push()
方法将其添加到新数组当中
let arr = ['aa','bb','cc','aa'];
let newArr = [];
arr.forEach(item => {
// item 代表arr数组里的每一项
if(newArr.indexOf(item) == -1)
newArr.push(item);
})
cosnole.log(newArr); // ['aa', 'bb', 'cc']
forEach循环 + includes()方法+ push()方法
解析: 通过 forEach循环
遍历原始数组,然后通过includes()
方法判断是否包含指定的子字符串,如果没有就通过 push()
方法将其添加到新数组当中
let arr = ['aa','bb','cc','aa'];
let newArr = [];
arr.forEach(item => {
// includes()方法用于判断字符串是否包含指定的子字符串,有则返回true,无则返回false;includes() 方法区分大小写。
if(!newArr.includes(item))
newArr.push(item);
})
console.log(newArr); // ['aa', 'bb', 'cc']
ES6的set()方法(推荐
)
解析: 通过 ES6
的 set()
方法,set()
类似 数组
,它的所有的成员都是唯一
的
let arr = ['aa','bb','cc','aa'];
// set 用于数组去重,成员是唯一的,不可以重复
let newArr = [...new Set(arr)];
console.log(newArr); // ['aa', 'bb', 'cc']
Array.from()方法 + set()方法(推荐
)
解析: ES6为Array添加了from函数用来将其他对象转换成数组。
let arr = ['aa','bb','cc','aa'];
let newArr = Array.from(new Set(arr));
console.log(newArr); // ['aa', 'bb', 'cc']