数组的排序方法:
1.reverse()方法 这个方法就是将数组元素反向排序
2.sort()方法 这个方法会按照升序排列数组元素,但是对每一项都会先转化成字符串再来比较排序,这就导致数组不一定是从小到大排列的
let values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5 (0<1<5)
数组的操作方法
1.concat()方法 可以在现有数组全部元素基础上创建一个新数组,就是先创建一个当前数组的副本,然后把参数添加到副本末尾,最后返回这个新数组
let colors = ["red","green","blue"];
let colors2 = colors.concat("yellow",["black","brown"]);
console.log(colors); //["red","green","blue"]
console.log(colors2); //["red","green","blue","yellow","black","brown"]
2.slice(开始截取的索引值,结束截止的索引值)方法 用于创建一个包含原有数组中一个或者多个元素的新数组
3.splice(开始位置,要删除的个数,插入的元素) 因此这个方法就可以有删除,插入,替换的功能
let colors = ["red", "green", "blue"];
let removed = colors.splice(0,1); //删除第一项
alert(colors); //green,blue
alert(removed); //red,返回数组中值包含一项
removed = colors.splice(1, 0, "yellow", "orange"); //从位置1开始插入两项
alert(colors); //green,yellow,organge,blue
alert(removed); //返回的是一个空数组
removed = colors.splice(1, 1, "red", "purple"); //插入两项,删除一项
alert(colors); //green,red,purple,orange,blue
alert(remove); //yellow, 返回的数组中只包含一项
搜索数组的方法:
1.严格相等搜索:(搜索的时候会用全等===来进行比较) 以下三种方法都传入两个参数,一个是查找的参数,一个是起始的搜索位置
indexOf() 从头开始找要查的元素的索引值
lastIndexOf() 从后往前找要查的元素的索引值
includes() 在数组中是否能找到要查找的元素,能找到返回true,找不到就返回false
2.断言函数:断言函数接收三个参数:元素,索引,数组本身
find()和findIndex()方法使用了断言函数
find() 返回第一个匹配的元素
findIndex() 返回第一个匹配元素的索引
const people = [{name:"Matt",age:"27"},{name:"Nicholas",age:"29"}];
alert(people.find((element,index,array) => element.age < 28)); //{name:"Matt",age:"27"}
alert(people.findIndex((element,index,array) => element.age < 28)) // 0
迭代方法:数组有五个迭代方法,每个方法的函数接收三个参数:数组元素,元素索引,数字本身
1.forEach():对数组进行遍历然后执行某些操作,其实就是相当于for循环遍历数组
let arr = [1,2,3,4];
//对每一项都进行某操作
arr.forEach((item,index,array) => {
});
//其实用一个for循环也能解决问题
let arr = [1,2,3,4];
for (let a = 0 ; a < arr.length ; a++){
}
2.filter() :过滤筛选,返回满足条件的所有制
let arr = [1,2,3,4,5,6];
let filterArr = arr.filter((item,index,array) => item>2);
alert(filterArr) //[3,4,5,6]
3.map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
let arr = [1,2,3,4,5,6];
let newArr =arr.map((item,index) => item*2);
alert(newArr) //[2,4,6,8,10,12]
4.every() 要每项都满足条件才为true
let arr = [1,2,3,4,5,6];
let result = arr.every((item,index,array) => item>2);
alert(result); //false
5.some() 只要有一项符合条件就返回true
let arr = [1,2,3,4,5,6];
let result = arr.some((item,index,array) => item>2);
alert(result); //true
归并方法:
reduce():从数组第一项开始遍历到最后一项
reduceRight():从数组最后一项遍历到第一项
这两个方法里的函数接收四个参数:上一个归并值,当前值,当前的索引值,数组本身
let values = [1,2,3,4,5];
let sum = values.reduce((prev,cur,index,array) => prev+cur);
alert(sum); //15
//这是一种解决思路,我觉得也可以用for循环解决
let values = [1,2,3,4,5];
let sum = 0;
for(let i =0;i<values.length;i++){
sum+=values[i]
};
alert(sum) //15
定性数组没看懂,等以后再回头看
网友评论