目录
数组添加
1.首位添加
语法:数组.unshift(数值1,数值2,数值3.....);
例子:
<script>
var arr = [100, 200, 300, 400, 7, 8, 6, 90];
// 首位添加
arr.unshift(5, 10, 15)
document.write(arr);
document.write(`<br>`);
</script>
结果:
2.末尾添加
语法:数组.push(数值1,数值2,数值3.....);
例子:
var arr = [100, 200, 300, 400, 7, 8, 6, 90];
//末尾添加
arr.push(20, 30)
document.write(arr);
document.write(`<br>`);
结果:
数组删除
1.首位删除
语法:数组.shift()
例子:
<script>
var arr = [100, 200, 300, 400, 7, 8, 6, 90];
// 首位删除
arr.shift();
document.write(arr);
document.write(`<br>`);
</script>
结果:
2.末尾删除
语法:数组.pop()
例子:
<script>
var arr = [100, 200, 300, 400, 7, 8, 6, 90];
// 末尾删除
arr.pop();
document.write(arr);
document.write(`<br>`);
</script>
结果:
3.选择删除
语法:数组.splice(参数一,参数二,参数三)
参数一:数组起始索引下标;可以为负数,表示从倒数第几个数开始;
参数二:删除数组单元个数:
参数三:参数三及以后参数都为替换值,替换删除的数组单元。
利用该参数的特点,当参数二为0时,能够实现对数组的插入操作。
例子:
<script>
var arr = [100, 200, 300, 400, 7, 8, 6, 90];
// 末尾删除
arr.splice(1,2);
document.write(arr);
document.write(`<br>`);
</script>
结果:
拓展:通过splice实现对数组的插入操作:
<script>
var arr = [100, 200, 300, 400, 7, 8, 6, 90];
// 末尾删除
arr.splice(1,0,600,800,1000);
document.write(arr);
document.write(`<br>`);
</script>
结果:
第二个参数为零,参数三及以后数值会插入参数一之前;
数组查询
1.indexOf查询
语法;数组.indexof(数值);
查询数值第一次出现的位置;查询结果存在,则返回该数值对应的索引下标,如果不存在返回-1
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
// 输出第一次出现数值8的下标
document.write(arr1.indexOf(8));
document.write(`<br>`);
</script>
结果:
2.lastIndexOf查询:
语法;数组.lastIndexof(数值);
查询数值最后一次出现的位置;查询结果存在,则返回该数值对应的索引下标,如果不存在返回-1
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
// 输出第一次出现数值8的下标
document.write(arr1.lastIndexOf(8));
document.write(`<br>`);
</script>
结果:
3.find查询
语法:var 变量名=数组.find(function(value,index ,array){return 表达式 }
value:数组单元的值;
index:数组单元索引下标;
array:代表原数组;
返回值为表达式对应数组单元的值;
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
// 输出第一次出现数值8的下标
var name=arr1.find(function(a){
return a===100
// 不存在返回 undefined
})
document.write(name)
</script>
结果
4.findIndex()查询
语法:var 变量名=数组.findIndex(function(value,index ,array){return 表达式 }
value:数组单元的值;
index:数组单元索引下标;
array:代表原数组;
返回值为表达式对应数组单元的索引下标;
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
// 输出第一次出现数值8的下标
var name=arr1.findIndex(function(value,index){
return index===6;
// 不存在返回 undefined
})
document.write(name)
</script>
结果:
数组截取
1.数组截取
语法:数组.slice(参数1,参数2)
参数1:截取起始位置下标索引;负数为倒数第几个
参数2:结束位置下标索引负数为倒数第几个;
参数2位置一定要在参数1右边;
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
// 从倒数第五个到倒数第一个
arr2 = arr1.slice(-5, -1);
document.write(arr2);
document.write(`<br>`);
</script>
结果:
映射
语法:var 变量=数组.map(function(val,index ,array)){ return 表达式}
value:数组单元的值;
index:数组单元索引下标;
array:代表原数组;
返回值为新数组
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
var arr4 = arr.map(function (value, index, origin) {
if (value % 2 === 0) {
// 值为偶数,arr4的值缩小一倍
return value / 2;
}
// 值为奇数,arr4的值扩大一倍
else {
return value * 2;
}
})
document.write(arr4);
document.write(`<br>`);
</script>
结果:
过滤
语法:var 变量=数组.filter(function(val,index ,array)){ return 表达式}
value:数组单元的值;
index:数组单元索引下标;
array:代表原数组;
l例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
var arr5 = arr1.filter(function (value, index, orign) {
return value % 3 === 0
// return '不满足 '
})
document.write(arr5);
document.write(`<br>`);
</script>
</body>
结果:
数组判断
1.some判断
语法:数组.some(function( value ,index ,array ){return 表达式})
value:数组单元的值;
index:数组单元索引下标;
array:代表原数组;
结果返回布尔类型;判断结果有一个符合就为true,都不符合返回false;
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
var ann=arr1.some(function(value ){
return value===100
})
// 数组判断 有一个满足就为true
document.write(ann);
document.write(`<br>`);
// 都不满足才为false
var ann1=arr1.some(function(value ){
return value===2000
})
document.write(ann1);
document.write(`<br>`);
</script>
结果:
2.every判断
语法:数组.every(function( value ,index ,array ){return 表达式})
value:数组单元的值;
index:数组单元索引下标;
array:代表原数组;
结果返回布尔类型;判断结果有一个不符合就为false,都不符合返回true;
例子:
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
// 一个不满足就为false
var ann=arr1.every(function(value ){
return value===100
})
document.write(ann);
document.write(`<br>`);
// 所有都满足才为true
var ann=arr1.every(function(value ){
return value>=2
})
document.write(ann);
document.write(`<br>`);
</script>
结果:
数组拼接
1.concat
语法:数组.concat( 数组1,数组2,数组3.....)
<script>
arr=[1]
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
arr2 = [200, 500, 200, 600, 500, 300, 80, 40, 60, 80]
// 一个不满足就为false
arr3 = arr.concat(arr1, arr2);
document.write(arr3);
document.write(`<br>`);
</script>
结果:
数组反转
1.reverse
语法:数组.reverse()
例子;
<script>
arr1 = [100, 5, 2, 6, 5, 3, 8, 4, 6, 8]
arr1.reverse()
document.write(arr1);
</script>
结果:
避坑
有时候数组反转时原数组也会跟着改变,可以采取截取一个新数组再反转
arr1=arr.slice().reverse()