数组有哪些方法
一、操作方法
1、增
(1):push()添加到数组末尾任意或多个值
<script>
var getNumber=[1,2,3,4];
getNumber.push(5,6,7);
console.log(getNumber);
// 那么打印出来的getNumber就是[1,2,3,4,5,6,7]
</script>
(2):unshift() 添加任意多个值在数组的头部
<script>
var getNumber=[1,2,3,4];
getNumber.unshift(5,6,7);
console.log(getNumber);
// 那么打印出来的getNumber就是[5,6,7,1,2,3,4]
</script>
(3):concat() (数组拼接)返回这个新构建的数组
<script>
var getNumber1=[1,2,3,4];
var getNumber2=[10,9,4]
var getNumber3=getNumber1.concat(getNumber2)
console.log(getNumber3);
// 那么打印出来的新数组getNumber3就是[1,2,3,4,10,9,4]
</script>
2、删
(1):pop() 尾部(最后一位)删除一个值
<script>
var getNumber=[1,2,3,4];
getNumber.pop();
console.log(getNumber);
// 那么打印出来的数组getNumber就是[1,2,3]
</script>
(2):shift() 头部(第一位)删除一个值
<script>
var getNumber=[1,2,3,4];
getNumber.shift();
console.log(getNumber);
// 那么打印出来的数组getNumber就是[2,3,4]
</script>
(3):splice() 从第几个下标上的值开始删除,共删除几个
<script>
var getNumber=[1,2,3,4,5,6,7,8,9];
getNumber.splice(2,3);
console.log(getNumber);
// 那么打印出来的数组getNumber就是[1,2,6,7,8,9]
// splice(2,3); 2代表从下标为二的开始 3代表共删除三个
//所以3,4,5被删除
</script>
3、*改*
splice()除了删除功能外还可以更改删除位置的值
<script>
var getNumber=[1,2,3,4,5,6,7,8,9];
getNumber.splice(2,3,10,11,12,13);
console.log(getNumber);
// 那么打印出来的数组getNumber就是[1,2,10,6,7,8,9]
// splice(2,3,10); 2代表从下标为二的开始 3代表共删除三个 所以3,4,5被删除
//10表示在下标2的位置更改了一个值为10,也可以更改多个用逗号隔开,他们会依次排序,会影响后边值的下标
</script>
4、*查*
indexOf() 在数组或字符串中查找元素,找到就返回元素的下标,没找到就返回-1
<script>
var getNumber=[1,2,3,2,5,6,7,8,9];
var res=getNumber.indexOf(2);
console.log(res);
// 那么打印出来的res就是1
// 1是下标,对应的就是数字2,indexOf找到第一个相同值就返回,不会去找下一个
// 如果indexOf没有找到相同值,就会返回-1
</script>
二、排序方法
reverse() 翻转
<script>
var getNumber=[1,2,3,4];
getNumber.reverse();
console.log(getNumber);
// 那么打印出来的数组getNumber就是[4,3,2,1]
</script>
三、转换方法
join() 把数组拼接成字符串()中放链接号(不会更改原数组,需要一个新的变量去接)
<script>
var getNumber=[1,2,3,4];
var res=getNumber.join('-');
console.log(getNumber);
console.log(res);
// 打印出来的数组getNumber依旧是[1,2,3,4]
// 打印出来的res就变成了字符串 1-2-3-4
</script>
四、迭代方法
some()
对数组每一项都运行传入的函数,如果有一项函数返回 true ,则这个方法返回 true
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let someResult = numbers.every((item, index, array) => item > 2);
console.log(someResult) // true
every()
对数组每一项都运行传入的函数,如果对每一项函数都返回 true ,则这个方法返回 true
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let everyResult = numbers.every((item, index, array) => item > 2);
console.log(everyResult) // false
forEach()
对数组每一项都运行传入的函数,没有返回值
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.forEach((item, index, array) => {
// 执行某些操作
});
filter()
对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let filterResult = numbers.filter((item, index, array) => item > 2);
console.log(filterResult); // 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