<script>
// push():将一个或多个元素添加到数组的末尾。
// pop():从数组末尾删除并返回一个元素。
// shift():从数组开头删除并返回一个元素。
// unshift():将一个或多个元素添加到数组的开头。
// splice():从数组中添加或删除元素。
// slice():返回一个新数组,其中包含从原始数组中提取的元素。
// concat():将一个或多个数组合并为一个新数组。
// indexOf():返回指定元素在数组中第一次出现的索引。
// lastIndexOf():返回指定元素在数组中最后一次出现的索引。
// join():将数组中的所有元素转换为一个字符串,并使用指定的分隔符将它们连接起来。
// reverse():反转数组中的元素的顺序。
// sort():按照升序或降序对数组中的元素进行排序。
// filter():返回一个新数组,其中包含符合指定条件的元素。
// map():返回一个新数组,其中包含对每个元素执行指定操作后的结果。
// reduce():将数组中的所有元素组合为单个值。
let array1=[1,3,6,34,45,65,12,32,43,65,534]
console.log('原数组');
console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
//增加数组push()
//尾插法
console.log('增加数组push()');
array1.push([1,2,12,3])
console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534, [1,2,12,3]]
//增加数组unshift()
//头插法
console.log('增加数组unshift()');
array1.unshift(0)
console.log(array1);//[0, 1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534, [1,2,12,3]]
//删除数组pop()
//尾删法
console.log('删除数组pop()');
let last=array1.pop()
console.log(last);//[1, 2, 12, 3]
console.log(array1);//[0, 1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
//删除元素shift()
//头删法
console.log('删除元素shift()');
let first=array1.shift()
console.log(first);//0
console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
//splice():从数组中添加或删除元素。
//array.splice(start, deleteCount, item1, item2, ...)
console.log('splice():从数组中添加或删除元素。');
//splice()删除元素
console.log('=====');
console.log(array1);//[1, 3, 6, 34, 45, 65, 12, 32, 43, 65, 534]
//表示从下标为1的元素开始删除,删除2个元素
array1.splice(1,2)
console.log(array1);//[1, 34, 45, 65, 12, 32, 43, 65, 534]
//splice()添加元素
console.log('=====');
console.log(array1);//[1, 34, 45, 65, 12, 32, 43, 65, 534]
//表示从下标为2的位置开始添加1.1,1.5
array1.splice(2,0,1.1,1.5)
console.log(array1);//[1, 34, 1.1, 1.5, 45, 65, 12, 32, 43, 65, 534]
//splice()替换元素
console.log('=====');
console.log(array1);//[1, 34, 1.1, 1.5, 45, 65, 12, 32, 43, 65, 534]
//表示从下标为2的位置开始替换2个元素,替换元素为2.2,2.4,2.5,当实际替换个数超过参数替换个数时,
//默认还是会将2.5插入,可以理解数组先执行了splice(2,2)操作,再执行splice(2,0,2.2,2.4,2.5)
//上面理解纯属个人的理解,真正执行流程见官方文档
array1.splice(2,2,2.2,2.4,2.5)
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//slice():返回一个新数组,其中包含从原始数组中提取的元素
console.log('slice():返回一个新数组,其中包含从原始数组中提取的元素');
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//从array1数组中的下标为1开始取,取3-1=2个元素
//生成一个新的数组,对原数组没有影响
let sliced = array1.slice(1, 3);
console.log(sliced);//[34, 2.2]
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//concat():将一个或多个数组合并为一个新数组。
console.log('concat():将一个或多个数组合并为一个新数组。');
let arr1 = [1, 2];
let arr2 = [3, 4];
let merged = arr1.concat(arr2);
console.log(merged); // [1, 2, 3, 4]
//indexOf():返回指定元素在数组中第一次出现的索引。
console.log('indexOf():返回指定元素在数组中第一次出现的索引');
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//返回元素在数组第一次出现的索引
let index=array1.indexOf(65);//6
console.log(index);
//lastIndexOf():返回指定元素在数组中最后一次出现的索引。
console.log('lastIndexOf():返回指定元素在数组中最后一次出现的索引。');
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//返回元素在数组第一次出现的索引
let lastIndex=array1.lastIndexOf(65);
console.log(lastIndex);//10
//join():将数组中的所有元素转换为一个字符串,并使用指定的分隔符将它们连接起来。
console.log('join():将数组中的所有元素转换为一个字符串,并使用指定的分隔符将它们连接起来。');
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//将数组用-连接返回一个字符串,原数组不影响
let str=array1.join('-');
console.log(str);//1-34-2.2-2.4-2.5-45-65-12-32-43-65-534
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//reverse():反转数组中的元素的顺序。
console.log('reverse():反转数组中的元素的顺序。');
console.log(array1);//[1, 34, 2.2, 2.4, 2.5, 45, 65, 12, 32, 43, 65, 534]
//反转数组,直接对数组进行操作
array1.reverse()
console.log(array1);//[534, 65, 43, 32, 12, 65, 45, 2.5, 2.4, 2.2, 34, 1]
//sort():按照升序或降序对数组中的元素进行排序。
console.log('sort():按照升序或降序对数组中的元素进行排序。');
console.log(array1);//[534, 65, 43, 32, 12, 65, 45, 2.5, 2.4, 2.2, 34, 1]
// 默认按照 Unicode 编码进行排序
//小数点会当做字符串处理,所以会出现排序失败
array1.sort()
console.log(array1);//[1, 12, 2.2, 2.4, 2.5, 32, 34, 43, 45, 534, 65, 65]
//正确做法
//升序
console.log('升序');
array1.sort((a, b)=>{
return a - b
})
console.log(array1);//[1, 2.2, 2.4, 2.5, 12, 32, 34, 43, 45, 65, 65, 534]
//降序
console.log('降序');
array1.sort((a, b)=>{
return b - a
})
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
//filter():返回一个新数组,其中包含符合指定条件的元素。
console.log('filter():返回一个新数组,其中包含符合指定条件的元素。');
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
//原数组不变,生成一个满足被2整除条件的新数组
let filter = array1.filter(num => num % 2 === 0)
console.log(filter);//[534, 34, 32, 12]
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
//map():返回一个新数组,其中包含对每个元素执行指定操作后的结果。
console.log('map():返回一个新数组,其中包含对每个元素执行指定操作后的结果。');
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
//原数组不变,生成一个每个元素都 x2 操作的新数组
let mapped = array1.map(num => num * 2);
console.log(mapped);//[1068, 130, 130, 90, 86, 68, 64, 24, 5, 4.8, 4.4, 2]
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
// reduce():将数组中的所有元素组合为单个值。
console.log('reduce():将数组中的所有元素组合为单个值。');
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
//acc代表累加器的值,num代表正在操作的值,0代表初始的值
let sum = array1.reduce((acc,num) => {
return acc + num
}, 0)
console.log(sum);//838.1
console.log(array1);//[534, 65, 65, 45, 43, 34, 32, 12, 2.5, 2.4, 2.2, 1]
</script>
在JavaScript中数组的常见方法
最新推荐文章于 2024-09-25 14:00:00 发布