美文网首页
javascript高级程序设计5

javascript高级程序设计5

作者: glassUp | 来源:发表于2022-03-23 15:05 被阅读0次

数组的排序方法:
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

定性数组没看懂,等以后再回头看

相关文章

网友评论

      本文标题:javascript高级程序设计5

      本文链接:https://www.haomeiwen.com/subject/qzjcjrtx.html