1.数组
不会改变原来数组的有: concat()—连接两个或更多的数组,并返回结果。
every()—检测数组元素的每个元素是否都符合条件。
some()—检测数组元素中是否有元素符合指定条件。
filter()—检测数组元素,并返回符合条件所有元素的数组。
indexOf()—搜索数组中的元素,并返回它所在的位置。
join()—把数组的所有元素放入一个字符串。
toString()—把数组转换为字符串,并返回结果。
lastIndexOf()—返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。map()—通过指定函数处理数组的每个元素,并返回处理后的数组。
slice()—选取数组的的一部分,并返回一个新数组。
valueOf()—返回数组对象的原始值。
-----------分割线-------------------
会改变原来数组的有: pop()—删除数组的最后一个元素并返回删除的元素。
push()—向数组的末尾添加一个或更多元素,并返回新的长度。
shift()—删除并返回数组的第一个元素。
unshift()—向数组的开头添加一个或更多元素,并返回新的长度。
reverse()—反转数组的元素顺序。
sort()—对数组的元素进行排序。
splice()—用于插入、删除或替换数组的元素。
let a = [1, 2, 3, 4, 5, 6, 7]
1.1 forEach(ES5新增)(可改变原值)
foreach 等方法里面回调函数里面是执行window的 因为里面函数执行调用是window.回调函数,因此里面的this是window,可以用箭头函数取消里面的作用域
遍历数组,无返回值,
a.forEach((value,index,arr)=>{
console.log(value,index,arr)
arr[index] = '123';
return;// 不能使用continue,可使用return代替,等于continue
arr[index] = '321'//此处不生效
// 此外不能用break中断整个循环,只能用some或者every这种函数
})
// a= ['123','123''123''123''123','123','123']
1.2 map(ES5新增)
遍历数组,返回一个新数组,不改变原数组
let b = a.map(e=>{ return e*2}) //返回一个新的数组,原数组不变
//[2, 4, 6, 8, 10, 12, 14]
1.3 filter(ES5新增)
过滤掉数组中不满足条件的值,返回一个新数组,不改变原数组
a.filter((e)=>{return e!=2})
//[1, 3, 4, 5, 6, 7]
1.4 reduce(ES5新增)
让数组的前后两项进行某种计算,然后返回其值,并继续计算,不改变原数组,返回计算的最终结果,从数组的第二项开始遍历
1.5 some(用于数组遍历中的break)(ES5新增)(可改变原值。增强forEach)
遍历数组的每一项,有一项返回true,则停止遍历,返回 true
var b = a.some((e)=>{return e === 2})
1.6 every(用于数组遍历中的break)(ES5新增)(可改变原值。增强forEach)
遍历数组的每一项,每一项都返回true,则最终结果为true,有一项返回false,则停止遍历,返回结果为false
1.7 Array.from()
将类数组转为数组,如set、map、字符串
1.8 Array.of()
将一组值转为数组
1.9 find
找出第一个符合条件的数组成员。回调函数中,参数1–value,参数2–index,参数3–原数组
1.10 fill
指定值填充数组。一般用于空数组的初始化–new Array(3).fill(7);–创建一个长度为3,每项值为7的数组
1.11 keys()、values()、entries()
keys()----键名,values()----键值,entries()----键值对
1.12 indexOf()
从前到后查到该值的下标
var cc = '123454321'
cc.indexOf(2) //1
1.13 lastIndexOf()
var cc = '123454321'
cc.lastIndexOf(2) //7
从前到后查到该值的下标
1.14 join
var arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr); // [1, 2, 3](原数组不变)
就是把数组转换成字符串,然后给他规定个连接字符,默认的是逗号( ,)
1.15 push/pop(会修改原数组)
push() :把里面的内容添加到数组末尾,并返回修改后的长度
pop() :移除数组最后一项,返回移除的那个值,减少数组的length
1.16 shift/unshift(会修改原数组)
shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
unshift:将参数添加到原数组开头,并返回修改后的长度
1.17 sort
var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]
排序,数字字母都可以
1.18 reverse(会修改原数组)
var arr = [13, 24, 51, 3];
console.log(arr.reverse()); //[3, 51, 24, 13]
console.log(arr); //[3, 51, 24, 13](原数组改变)
反转
1.19 contact
var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]
console.log(arr); // [1, 3, 5, 7](原数组未被修改)
将参数添加到原数组中,原数组不变
1.20 slice
var arr = [1,3,5,7,9,11];
// 一个参数
var arrCopy = arr.slice(1);//从索引1开始到结尾
var arrCopy_ = arr.slice(-1);//从索引-1开始到结尾,其实就是截取最后一个
console.log(arrCopy); //[3, 5, 7, 9, 11]
console.log(arrCopy_); //[11]
//两个参数
var arrCopy2 = arr.slice(1,4);//从索引1开始到索引3
var arrCopy3 = arr.slice(1,-2);//从索引1到倒数第三个,注意第二个参数为负数的时候,-1是最后一个,依次-2、、、、-3、、、往左推
var arrCopy4 = arr.slice(-4,-1);//从倒数第四个到倒数第2个
console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)
console.log(arrCopy2); //[3, 5, 7]
console.log(arrCopy3); //[3, 5, 7]
console.log(arrCopy4); //[5, 7, 9]
在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
1.21 splice(会修改原数组)
var arr = [1,3,5,7,9,11];
// 一个参数
var arrCopy = arr.splice(1);//删除从索引1开始到结尾的,并返回
//arr=>[1]
//return arrCopy =>[3,5,7,9,11]
var arrCopy_ = arr.splice(-1);//从索引-1开始到结尾,其实就是截取最后一个
//arr=>[1,3,5,7,9]
//return arrCopy ->[11]
// 两个参数
var arrCopy2 = arr.splice(1,2);//删除从索引1开始,长度为2的的数组并返回
//arrCopy2 =>[3,5]
//arr=>[1,7,9,11]
var arrCopy2 = arr.splice(-5,2);//删除从倒数第4个元素开始,长度为2的的数组并返回
//arrCopy2 =>[3,5]
//arr=>[1,7,9,11]
通过索引开始删除某些元素,index,length,返回删除后的元素,原数组变化
也可以插入某个元素,第三个参数不为空的时候,则是插入
var adddItems = vegetables.splice(1, 2,'测试');
console.log(adddItems );.
// ["Cabbage", "测试", "Carrot"]
// 从下标为1开始删除2两个元素,并在下标为1的地方开始插入值
2.await/async
let response = await fetch(url)
等于
let response;
fetch(url).then((data)=>{
response = data;
})
response.arrayBuffer()或者response.json()注意返回的也是给promise对象,可以配合await使用