1.concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
将两个数组合并为一个新数组:
var arr = ['a', 'b', 'c'];
var arr1 = [1, 2, 3];
arr.concat(arr1);
// result in ['a', 'b', 'c', 1, 2, 3]
2.filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
callback 被调用时传入三个参数:
- 元素的值
- 元素的索引
- 被遍历的数组本身
返回值
一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组
数组的元素由原数组中值大于 10 的元素组成。
var arr = [12, 5, 8, 130, 44]
arr.filter(item =>{
return item>=10
})
// [12, 130, 44]
3.find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
callback函数带有3个参数:当前元素的值、当前元素的索引,以及数组本身。
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
var arr=[1,2,3,4,5,6,7,8,9,10]
arr.find(item=>{
// find() 方法为数组中的每个元素都调用一次函数执行:
// 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
// 如果没有符合条件的元素返回 undefined
return item>5
})
// 输出结果
6
注意: find() 对于空数组,函数是不会执行的。
注意: find() 并没有改变数组的原始值。
4.findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。
获取数组中年龄大于等于 18 的第一个元素索引位置
var ages = [3, 10, 18, 20];
const age = (arr) => arr >= 18;
const age2 = ages.findIndex(age);
console.log(age2)
//2
5.forEach()方法对数组的每个元素执行一次给定的函数。
const arr1 = ['a', 'b', 'c'];
arr1.forEach(arr => {
console.log(arr)
});
callback 函数传入三个参数:第一个必须写后面的可以省略
- 数组当前项的值
- 数组当前项的索引
- 数组对象本身
6.includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
const arr = [1, 2, 3];
console.log(arr.includes(2));
// true
console.log(arr.includes(10));
//false
7.indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison'));
// 结果: 1
8.join()方法将一个数组中的所有元素放一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符
const elements = ['H', 'e', 'l', 'l', 'o'];
console.log(elements.join());
// "H,e,l,l,o"
console.log(elements.join(''));
// "Hello"
console.log(elements.join('-'));
// "H-e-l-l-o""
9.lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
const animals = ['1', '3', '5', '1'];
console.log(animals.lastIndexOf('1'));
// expected output: 3
console.log(animals.lastIndexOf('5'));
// expected output: 2
10.map()方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
const arr = [1, 4, 9, 16];
const map1 = arr.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]
11.pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
const arr = ['1', '3', '5', '7', '9'];
console.log(arr.pop());
// expected output: "9"
console.log(arr);
// expected output: Array ["1", "3", "5", "7"]
plants.pop();
console.log(arr);
// expected output: Array ["1", "3", "5"]
12.push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
const arr = ['1', '3', '5'];
arr.push('7', '9');
console.log(arr);
// expected output: Array ["1", "3", "5", "7", "9"]
13.reduce()方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回
reducer 函数接收4个参数:
- Accumulator (acc) (累计器)
- Current Value (cur) (当前值)
- Current Index (idx) (当前索引)
- Source Array (src) (源数组)
您的 reducer 函数的返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。
const arr = [1, 2, 3, 4];
const reducer = (acc, cur) => acc + cur;
// 1 + 2 + 3 + 4
console.log(arr.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(arr.reduce(reducer, 5));
// expected output: 15
14.shift()方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
const arr = [1, 2, 3];
const arr1 = arr.shift();
console.log(arr);
// expected output: Array [2, 3]
console.log(arr1);
// expected output: 1
15.unshift方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)
const arr = [1, 2, 3];
console.log(arr.unshift(4, 5));
// expected output: 5
console.log(arr);
// expected output: Array [4, 5, 1, 2, 3]
16.every()方法用来检测数组中所有的元素是否都满足条件,如果满足条件返回一个true,不满足条件的话返回false并且后面的元素不会再进行检测
注意:1.every()不会对空数组进行检测, 2.不会改变原数组
function a(num) {
return num >= 10;
}
[12, 54, 18, 130, 44].every(a) //true
[12, 5, 18, 130, 44].every(a) //false