下面有一个数组,请分别使用ES5和ES6来实现去重。 const arr = [20, lvye, 20, 1, true, false, lvye]
时间: 2023-11-12 20:05:43 浏览: 146
ES5实现去重:
```javascript
var arr = [20, 'lvye', 20, 1, true, false, 'lvye'];
var uniqueArr = arr.filter(function(item, index, arr) {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [20, 'lvye', 1, true, false]
```
ES6实现去重:
```javascript
const arr = [20, 'lvye', 20, 1, true, false, 'lvye'];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [20, 'lvye', 1, true, false]
```
其中 `[...new Set(arr)]` 表示创建一个Set集合,并将数组中的元素作为集合的参数传入。由于Set集合中的元素不能重复,所以最终得到的就是去重后的数组。最后使用展开运算符 `...` 将Set集合转化为数组。
相关问题
ES5 和 ES6区别
ES5 和 ES6 是 JavaScript 的两个版本,两者之间有以下区别:
1. 变量声明方式不同:ES5 使用 var 声明变量,ES6 使用 let 和 const 声明变量。
2. 箭头函数:ES6 引入了箭头函数,简化了函数的写法。
3. 模板字符串:ES6 引入了模板字符串,可以直接在字符串中使用变量和表达式。
4. 类和继承:ES6 引入了 class 和 extends 关键字,使得 JavaScript 可以像传统面向对象语言一样使用类和继承。
5. 解构赋值:ES6 引入了解构赋值,可以方便地从对象或数组中取出值赋给变量。
6. Promise:ES6 引入了 Promise,可以更方便地进行异步编程。
7. 模块化:ES6 引入了模块化,使得 JavaScript 可以像其他编程语言一样进行模块化开发。
总的来说,ES6 引入了很多新的语法和特性,使得 JavaScript 更加现代化、可读性更高、开发更方便。
帮我出20道关于es5和es6的前端数组选择题,并附答案
好的,以下是20道关于ES5和ES6的前端数组选择题及其答案:
1. 在ES5中,如何创建一个空数组?
A. var arr = [];
B. var arr = new Array();
C. var arr = {};
答案:A
2. 在ES6中,如何创建一个空数组?
A. var arr = [];
B. var arr = new Array();
C. var arr = {};
答案:A
3. 在ES5中,如何向数组末尾添加一个元素?
A. arr.push(elem);
B. arr.unshift(elem);
C. arr.splice(elem);
答案:A
4. 在ES6中,如何向数组末尾添加一个元素?
A. arr.push(elem);
B. arr.unshift(elem);
C. arr.splice(elem);
答案:A
5. 在ES5中,如何从数组末尾删除一个元素?
A. arr.pop();
B. arr.shift();
C. arr.splice(-1, 1);
答案:A
6. 在ES6中,如何从数组末尾删除一个元素?
A. arr.pop();
B. arr.shift();
C. arr.splice(-1, 1);
答案:A
7. 在ES5中,如何在数组指定位置插入一个元素?
A. arr.splice(index, 0, elem);
B. arr.push(elem);
C. arr.unshift(elem);
答案:A
8. 在ES6中,如何在数组指定位置插入一个元素?
A. arr.splice(index, 0, elem);
B. arr.push(elem);
C. arr.unshift(elem);
答案:A
9. 在ES5中,如何获取数组的长度?
A. arr.length;
B. arr.size;
C. arr.count;
答案:A
10. 在ES6中,如何获取数组的长度?
A. arr.length;
B. arr.size;
C. arr.count;
答案:A
11. 在ES5中,如何遍历数组并输出每个元素?
A. for (var i = 0; i < arr.length; i++) { console.log(arr[i]); }
B. arr.forEach(function(elem) { console.log(elem); });
C. for (var elem in arr) { console.log(elem); }
答案:A
12. 在ES6中,如何遍历数组并输出每个元素?
A. for (var i = 0; i < arr.length; i++) { console.log(arr[i]); }
B. arr.forEach(function(elem) { console.log(elem); });
C. for (var elem in arr) { console.log(elem); }
答案:B
13. 在ES5中,如何判断一个元素是否在数组中?
A. arr.indexOf(elem) !== -1;
B. arr.includes(elem);
C. arr.contains(elem);
答案:A
14. 在ES6中,如何判断一个元素是否在数组中?
A. arr.indexOf(elem) !== -1;
B. arr.includes(elem);
C. arr.contains(elem);
答案:B
15. 在ES5中,如何将数组转换为字符串?
A. arr.join();
B. arr.toString();
C. JSON.stringify(arr);
答案:B
16. 在ES6中,如何将数组转换为字符串?
A. arr.join();
B. arr.toString();
C. JSON.stringify(arr);
答案:A
17. 在ES5中,如何排序一个数组?
A. arr.sort();
B. arr.sort(function(a, b) { return a - b; });
C. arr.sort(function(a, b) { return b - a; });
答案:A
18. 在ES6中,如何排序一个数组?
A. arr.sort();
B. arr.sort(function(a, b) { return a - b; });
C. arr.sort(function(a, b) { return b - a; });
答案:B
19. 在ES5中,如何过滤一个数组?
A. arr.filter(function(elem) { return elem > 0; });
B. arr.map(function(elem) { return elem * 2; });
C. arr.reduce(function(sum, elem) { return sum + elem; });
答案:A
20. 在ES6中,如何过滤一个数组?
A. arr.filter(function(elem) { return elem > 0; });
B. arr.map(function(elem) { return elem * 2; });
C. arr.reduce(function(sum, elem) { return sum + elem; });
答案:A
阅读全文