// 创建一个空数组
let arr1 = []
// 创建一个有内容的数组
let arr2 = [1, 2, 3]
// 创建一个空数组
let arr1 = new Array()
// 创建一个长度为 10 的数组
let arr2 = new Array(10)
// 创建一个有内容的数组
let arr3 = new Array(1, 2, 3)
巧计增删元素:
p开头:prior 在前面所以在数组的前面进行增添和删除
push
是用来在数组的末尾追加一个元素
let arr = [1, 2, 3]
// 使用 push 方法追加一个元素在末尾
arr.push(4)
console.log(arr) // [1, 2, 3, 4]
pop
是用来删除数组末尾的一个元素
let arr = [1, 2, 3]
// 使用 pop 方法删除末尾的一个元素
arr.pop()
console.log(arr) // [1, 2]
unshift
是在数组的最前面添加一个元素
let arr = [1, 2, 3]
// 使用 unshift 方法想数组的最前面添加一个元素
arr.unshift(4)
console.log(arr) // [4, 1, 2, 3]
shift
是删除数组最前面的一个元素
let arr = [1, 2, 3]
// 使用 shift 方法删除数组最前面的一个元素
arr.shift()
console.log(arr) // [2, 3]
语法:array.slice(start, end)
array:要操作的原始数组。
start:可选参数,表示开始提取元素的位置。如果省略了 start,则 slice() 从索引 0 开始提取。
end:可选参数,表示结束提取元素的位置(但不包括该位置的元素)。如果省略了 end,则 slice() 会提取到原始数组的末尾。
splice
是截取数组中的某些内容,按照数组的索引来截取
语法: splice(从哪一个索引位置开始,截取多少个,替换的新元素)
(第三个参数可不写)
let arr = [1, 2, 3, 4, 5]
// 使用 splice 方法截取数组
arr.splice(1, 2)
console.log(arr) // [1, 4, 5]
arr.splice(1, 2)
表示从索引 1 开始截取 2 个内容let arr = [1, 2, 3, 4, 5]
// 使用 splice 方法截取数组
arr.splice(1, 2, 'new')
console.log(arr) // [1, 'new', 4, 5]
arr.splice(1, 2, 'new')
表示从索引 1 开始截取 2 个内容reverse
是用来反转数组使用的
let arr = [1, 2, 3]
// 使用 reverse 方法来反转数组
arr.reverse()
console.log(arr) // [3, 2, 1]
sort
是用来给数组排序的
let arr = [2, 3, 1]
// 使用 sort 方法给数组排序
arr.sort()
console.log(arr) // [1, 2, 3]
concat
是把多个数组进行拼接
和之前的方法有一些不一样的地方,就是 concat
不会改变原始数组,而是返回一个新的数组
let arr = [1, 2, 3]
// 使用 concat 方法拼接数组
let newArr = arr.concat([4, 5, 6])
console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]
concat
方法不会改变原始数组join
是把数组里面的每一项内容链接起来,变成一个字符串
可以自己定义每一项之间链接的内容 join(要以什么内容链接)
不会改变原始数组,而是把链接好的字符串返回
let arr = [1, 2, 3]
// 使用 join 链接数组
let str = arr.join('-')
console.log(arr) // [1, 2, 3]
console.log(str) // 1-2-3
indexOf
用来找到数组中某一项的索引
语法: indexOf(你要找的数组中的项)
let arr = [1, 2, 3, 4, 5]
// 使用 indexOf 超找数组中的某一项
let index = arr.indexOf(3)
console.log(index) // 2
和 for
循环一个作用,就是用来遍历数组的
语法:arr.forEach(function (item, index, arr) {})
let arr = [1, 2, 3]
// 使用 forEach 遍历数组
arr.forEach(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
console.log('数组的第 ' + index + ' 项的值是 ' + item + ',原始数组是', arr)
})
forEach()
的时候传递的那个函数,会根据数组的长度执行和 forEach
类似,只不过可以对数组中的每一项进行操作,返回一个新的数组
let arr = [1, 2, 3]
// 使用 map 遍历数组
let newArr = arr.map(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
return item + 10
})
console.log(newArr) // [11, 12, 13]
和 map
的使用方式类似,按照我们的条件来筛选数组
把原始数组中满足条件的筛选出来,组成一个新的数组返回
let arr = [1, 2, 3]
// 使用 filter 过滤数组
let newArr = arr.filter(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
return item > 1
})
console.log(newArr) // [2, 3]
> 1
> 1
的项它可以帮助我们对数组进行迭代,并将每个元素进行指定的操作,最终将它们合并成一个单一的值。
假设我们有一个数组 numbers,里面包含着一些数字:[1, 2, 3, 4, 5]。现在我们想要计算这些数字的总和。
我们可以使用reduce()函数来实现这个目标。具体的代码如下:
const numbers = [1, 2, 3, 4, 5];
const total = numbers.reduce((sum, item) => {
return sum + item;
}, 0);
console.log(total); // 输出:15
再比如,这是一个实现比较大小值返回最大值的例子:
const array = [5, 8, 2, 10, 3];
const max = array.reduce((a, b) => Math.max(a, b));
console.log(max); // 输出10
数组的find方法用于查找数组中满足指定条件的第一个元素,并返回该元素的值。如果找到匹配的元素,则返回该元素的值;如果没有找到匹配的元素,则返回undefined。
语法:
array.find(function(currentValue, index, arr), thisValue)
function:指定用来测试每个元素的函数,这个函数接收三个参数:
currentValue:当前元素的值。
index:当前元素的索引。
arr:当前数组对象。
thisValue (可选):传递给函数的值被用作 “this” 的值。
例子:
let numbers = [5, 12, 8, 130, 44];
let found = numbers.find(function(element) {
return element > 10;
});
console.log(found); // 输出12
数组的every方法用于检测数组中的所有元素是否都满足指定条件。它会对数组中的每个元素调用一个提供的测试函数,直到找到一个使测试函数返回false的元素,或者遍历完整个数组。
array.every(function(currentValue, index, arr), thisValue)
function:指定用来测试每个元素的函数,这个函数接收三个参数:
currentValue:当前元素的值。
index:当前元素的索引。
arr:当前数组对象。
thisValue (可选):传递给函数的值被用作 “this” 的值。
let numbers = [1, 2, 3, 4, 5];
let allPositive = numbers.every(function(element) {
return element > 0;
});
console.log(allPositive); // 输出true
flat() 方法接受一个可选参数 depth,用于指定要展平的层数。如果不传递该参数,则默认为 1,即只展平第一层嵌套的数组。如果传递了Infinity
,则会展平所有嵌套的数组。
const arr1 = [1, 2, [3, 4]];
const arr2 = [1, 2, [3, [4]]];
const arr3 = [1, 2, [3, [4]]];
arr1.flat(); // [1, 2, 3, 4]
arr2.flat(); // [1, 2, 3, [4]]
arr2.flat(2); // [1, 2, 3, 4]
arr3.flat(Infinity); // [1, 2, 3, 4]
需要注意的是,flat() 方法只能展平数组类型的元素。如果数组中包含非数组类型的元素,这些元素会被保留在结果数组中,不会被展平