1. 数组新增方法
- map方法:将数组中每一个元素依次取出,进行遍历,返回一个新的数组
let movies=[
{id:1,name:"大话西游",author:"xxxx",imgUrl:"http://xxx.douban.com/1.jpg"},
{id:2,name:"逃学威龙",author:"xxxx",imgUrl:"http://xxx.douban.com/2.jpg"},
{id:3,name:"喜剧之王",author:"xxxx",imgUrl:"http://xxx.douban.com/3.jpg"}
]
movies = movies.map(item => {
item.imgUrl = item.imgUrl.replace("xxx","www")
return item;
})
console.log(movies);
- filter方法:筛选数组中的内容,找出其中符合条件的元素,返回一个新数组
let scores = [49,79,44,99,50];
let arr = scores.filter(item => item >= 60);
console.log(arr); // [ 79, 99 ]
缺点:filter只能用于数据量较小的内容筛选,不适合用在数据库这种大型的数据搜索。
- some方法: 只要有一个符合要求,整体都为真
let scores = [85,55,98,75,56,101];
let result = scores.some(item => item >= 100);
console.log(result); // true
- every: 全体为真才为真
let scores = [85,55,98,75,56,101];
let result = scores.every(item => item >= 50);
console.log(result); // true
- reduce:将数组中的元素进行整合,返回一个新的内容
- prev: 上一次操作的返回结果,如果没有设置默认参数,那么第一个数组元素,作为第二个数组元素的prev
- item: 当前数组元素
- index: 数组元素的索引值
- array: 当前操作的数组
//reduce实现数组中的去重,返回一个新的没有重复的数组
let arr = ["百度","腾讯","阿里","京东","百度","腾讯","京东"];
let result = arr.reduce((prev,item) => {
if(!prev.includes(item)){
prev.push(item)
}
return prev;
},[])
console.log(result); // [ "百度", "腾讯", "阿里", "京东" ]
2. 字符串新增方法
- startsWith() 判断字符串以什么开头,返回布尔值
let str = "hello world";
let result = str.startsWith("hello");
console.log(result); // true
- 判断字符串以什么结尾 endsWith()
let str = "hello world";
let r2 = str.endsWith("世界");
console.log(r2); // false
- trim() 去除字符串前后的空格符
let str=" hello world ";
console.log(str.trim() === "hello world"); // true
3. Es6新增数据类型
- set类型: 类数组,不重复的数组
let s1 = new Set([1,2,3,4,5,5,5]);
// set 类数组的长度用size
console.log(s1.size); // 5
利用set来实现数组的去重
如何让set类型转化为数组 类数组转化为数组
Array.from() 类型的转化
let arr = [1,2,3,4,5,5,5];
let s1 = new Set(arr);
arr = Array.from(s1)
console.log(arr); // [ 1, 2, 3, 4, 5 ]
- map类型:可以将任意的元素,作为key
<button id="bt1">点击</button>
<script>
var bt1 = document.getElementById("bt1");
let m = new Map();
//增加属性 set()
m.set(bt1,"按钮")
//访问 get()
console.log(m.get(bt1)); // 按钮
</script>
- symbol 创建一个独一无二得值,防止出现属性的覆盖问题,内部调用的方法 利用symbol进行单独的封装,防止出现覆盖
let name = Symbol("姓名");
let r = Symbol("姓名");
console.log(r); // Symbol("姓名")
console.log(name === r); // false