方法一、利用数组的indexOf下标属性过滤
在写方法之前,先熟悉一下indexOf这个方法,字符串、数组都可以使用,
以下代码在谷歌控制台测试。
![](https://i-blog.csdnimg.cn/blog_migrate/89c09fe14b5d1de0d096f8586cd67cc2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0af1363fac678156c78d9bc55903e8d8.png)
-
- function repeat(data) {
- if (!data) {
- return;
- }
- var tepArr = [];
- data.forEach(function(item, index) {
- if (tepArr.indexOf(item) == -1) {
- tepArr.push(item);
- }
- });
- return tepArr;
- }
- var resArr = repeat(['C', 'S', 'D', 'N', 'C', 'D', 'C']);
- console.log(resArr);
![](https://i-blog.csdnimg.cn/blog_migrate/27750331ba6904a53193000291301d0f.png)
方法二、利用对象属性赋值来比对
- function repeat(data) {
- var tepArr = [];
- var Obj={};
- data.forEach(function(item, index) {
- if (!Obj[item]) {
- Obj[item]=true;
- tepArr.push(item);
- }
- });
- return tepArr;
- }
- var resArr = repeat(['C', 'S', 'D', 'N', 'C', 'D', 'C']);
- console.log(resArr);
![](https://i-blog.csdnimg.cn/blog_migrate/3410b10d54908d3d17dac3458e28918f.png)