网站建设一般都需要什么资质,河南省建设工程质量安全监督网站,东莞网站建设都找菲凡网络,电商网站开发平台pi netwo一、增删改方法
增删改查四大天王是数组中最常见也是最简单的方法#xff0c;需要留意的是哪些方法会对原数组产生影响#xff0c;哪些方法不会,查找方法较多#xff0c;单独说明
下面前五种增删方法都对原数组产生影响
push()unshift()pop()shift()splice()
push()
pu…一、增删改方法
增删改查四大天王是数组中最常见也是最简单的方法需要留意的是哪些方法会对原数组产生影响哪些方法不会,查找方法较多单独说明
下面前五种增删方法都对原数组产生影响
push()unshift()pop()shift()splice()
push()
push()方法接收任意数量的参数并将它们添加到数组末尾返回数组的最新长度
let colors [red]; // 创建一个数组
let count colors.push(green,blue); // 推入两项
console.log(count) // 3
console.log(colors) // [red,green,blue]unshift()
unshift()在数组开头添加任意多个值然后返回新的数组长度
let colors [red]; // 创建一个数组
let count colors.unshift(green,blue); // 从数组开头推入两项
console.log(count) // 3
console.log(colors) // [green,blue,red]pop()
pop() 方法用于删除数组的最后一项同时减少数组的 length 值返回被删除的项
let colors [red,green,blue]
let item colors.pop(); // 取得最后一项
console.log(item) // blue
console.log(colors) // [red,green]shift()
shift()方法用于删除数组的第一项同时减少数组的 length 值返回被删除的项
let colors [red,green,blue]
let item colors.shift(); // 取得第一项
console.log(item) // red
console.log(colors) // [green,blue]splice()
splice功能强大可以同时对数组进行增删改的操作
传入三个参数分别是开始位置要删除元素的数量要插入的任意多个元素返回删除元素的数组对原数组产生影响
let colors [red, green, blue];
let removed colors.splice(1, 1, red, purple); // 插入两个值删除一个元素
console.log(colors); // red,red,purple,blue
console.log(removed); // green只有一个元素的数组删除传入两个参数分别是开始下标位置删除元素的数量返回包含删除元素的数组
let colors [red, green, blue];
let removed colors.splice(0,1); // 删除第一项
console.log(colors); // green,blue
console.log(removed); // red只有一个元素的数组增加传入三个参数分别是开始位置、0要删除的元素数量、插入的元素返回空数组
let colors [red, green, blue];
let removed colors.splice(1, 0, yellow, orange)
console.log(colors) // red,yellow,orange,green,blue
console.log(removed) // []改只需要在删除的位置添加元素即可
let colors [red, green, blue];
let removed colors.splice(1, 1, yellow)
console.log(colors) // red,yellow,blue
console.log(removed) // [green]二、搜索和位置方法
即查找元素返回元素坐标或者元素值
indexOf()lastIndexOf()find()findIndex()includes()
indexOf()
返回要查找的元素在数组中第一次出现的下标如果没找到则返回 -1
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
console.log(numbers.indexOf(9) ); // -1
console.log(numbers.indexOf(4) ); // 3lastIndexOf()
返回要查找的元素在数组中最后一次出现的下标如果没找到则返回 -1
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
console.log(numbers.lastIndexOf(9) ); // -1
console.log(numbers.lastIndexOf(4) ); // 5find()
返回第一个匹配的元素
const people [{name: 张三,age: 27},{name: 李四,age: 29}
];
people.find((item, index, array) item.age 28) // // {name: Matt, age: 27}findIndex()
返回满足条件的数组下标找不到则返回 -1
const people [{name: 张三,age: 27},{name: 李四,age: 29}
];
people.findIndex((item, index, array) item.age 28) // -1
people.findIndex((item, index, array) item.age 28) // 0includes()
返回要查找的元素在数组中的位置找到返回true否则false
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.includes(4) // true
numbers.includes(9) // false三、排序方法
数组有两个方法可以用来对元素重新排序
reverse()sort()
reverse()
将数组元素方向反转改变原数组
let values [1, 2, 3, 4, 5];
values.reverse();
console.log(values) // [5,4,3,2,1]sort()
sort()方法接受一个回调函数回调中两个参数的顺序决定升序或是降序
//升序
let values [4, 2, 3, 1, 5];
values.sort((a,b) a - b)
console.log(values) //[1, 2, 3, 4, 5]
//降序
values.sort((a,b) b - a)
console.log(values) //[5, 4, 3, 2, 1]四、操作方法方法
常见的操作方法有三种
join()
join() 将数组转换为字符串接收一个参数作为数组每一项间的连接符,影响原数组
let colors [red, green, blue];
console.log(colors.join(,)) // red,green,blue
console.log(colors.join(||)) // red||green||blueslice()
slice() 截取数组中一部分用于创建一个包含原有数组中一个或多个元素的新数组接受两个参数第一个是开始截取的下标第二个是结束的下标不包含这个值如果只有一个参数则截取从下标开始的所有项不会影响原始数组
let colors [red, green, blue, yellow, purple];
let colors2 colors.slice(1);
let colors3 colors.slice(1, 4);
console.log(colors) // red,green,blue,yellow,purple
concole.log(colors2); // green,blue,yellow,purple
concole.log(colors3); // green,blue,yellowconcat()
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]五、迭代方法
常用来迭代数组的方法都不改变原数组有如下
some()every()forEach()filter()map()reduce()
some()
对数组中的每一项都执行回调函数如果有一项满足函数的条件则这个方法返回 true
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
let someResult numbers.every((item, index, array) item 2);
console.log(someResult) // trueevery()
对数组中的每一项都执行回调函数如果每一项都满足函数的条件 则这个方法返回 true
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
let everyResult numbers.every((item, index, array) item 2);
console.log(everyResult) // falseforEach()
对数组中的每一项都执行回调函数没有返回值与for循环相似
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.forEach((item, index, array) {// 执行某些操作
});filter()
对数组中的每一项都执行回调函数返回满足条件的项组成新数组之后返回
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
let neWnumbers numbers.filter((item, index, array) item 2);
console.log(neWnumbers); // [3,4,5,4,3]map()
对数组中的每一项都执行回调函数返回由每次函数调用的结果构成的数组
let numbers [1, 2, 3, 4, 5, 4, 3, 2, 1];
let mapResult numbers.map((item, index, array) item * 2);
console.log(mapResult) // [2,4,6,8,10,8,6,4,2]reduce()
对数组进行累加操作接受两个参数第一个参数为回调函数,如果没有第二个参数pre的值为数组的第一项pre与第二项item相加后的值重新作为pre值与第三项相加直到最后一项如果有第二个参数则pre的初始值为第二个参数与数组第一项相加 const arr [1,2,3,4,5]arr.reduce((pre,item,arr) {pre itemreturn pre }0)完整项目附件点此下载