1.数组的增删
push()方法
arr.push(参数1,参数2····,参数n)
向数组的尾部添加元素,返回值是操作数组的长度,他改变的是原来的数组
var n = arr4.push('李白','白居易');
console.log(n,arr4);
unshift(参数1,参数2,···,参数n)
向数组的前面添加元素,返回值是操作数组的长度,他改变是原来的数组
var m = arr4.unshift('杨玉环','西施');
console.log(m,arr4);
unshift(参数1,参数2,···,参数n)
向数组的前面添加元素
返回值是操作数组的长度,他改变的是原来的数组
var m = arr4.unshift('杨玉环','西施');
console.log(m,arr4);
pop(),方法 没有参数
删除数组的最后一个元素
返回值是删除的元素,他改变的是原来的数组
var arr5 = ['忽必烈','蒙哥','白起','赵云','韩信','兰陵王'];
var a = arr5.pop();
console.log(a,arr5);
shift(),方法 没有参数
删除数组的第一个元素
返回值是删除的元素,他改变的是原来的数组
var b = arr5.shift();
console.log(b,arr5);
splice(参数1,参数2,参数3)
该方法可以从数组中任意的位置开始,删除,替换和添加任意元素
第一个参数是 指定开始操作的位置也就是数组下标
第二个参数是 指定删除元素的长度,包含开始位置
第三个参数是 该参数的内容替换删除元素的位置,实际上是一个添加元素的操作
返回值是删除的元素组成的数组,如果删除为空则返回空数组
当只有一个参数的时候,从该参数的位置开始,一直删除到最后,返回值是所删除的数组
不写参数,没有任何操作
var arr6 = ['忽必烈1','蒙哥1','白起1','赵云1','韩信1','兰陵王1'];
// var sp = arr6.splice(2,2);
// console.log(sp,arr6);
// var m = arr6.splice(2,0,'成吉思汗');
// console.log(m,arr6);
var n = arr6.splice(3);
console.log(n,arr6);
数组提取类
indexOf() 获取指定元素的下标
第一个参数 设置要查找的元素
第二个参数 指定从哪一个位置开始查找
返回值是
如果没有找到元素,则返回-1
如果找到元素,则返回元素所在的下标
特点:
1.必须从指定的位置(第二个参数)开始查找
2.如果不写第二个参数,则默认从第一位开始查找
3.第二个参数不能为负值
4.该方法是一个新方法,IE8及其以下不支持
var arr1 = ['西施','貂蝉','王昭君','杨玉环'];
var n = arr1.indexOf('王昭君',1);
console.log(n);
把所有值为西施的数组下标存放到一个新数组中
var arr2 = ['西施','西施','貂蝉','西施','王昭君','西施','杨玉环'];
var m = arr2.indexOf(arr2);
var arr3 = [];
for (var i=0;arr2.indexOf('西施',i)!=-1;){
var temp = arr2.indexOf('西施',i);
arr3.push(temp);
i = temp+1;
}
console.log(arr3);
//[0,2,4]
//lastIndexOf() 使用方法和indexOf没有区别,只是他从指定位置往前查找
var n1 = arr2.lastIndexOf('貂蝉',4);
console.log(n1);
slice() 截取子数组
两个参数
第一个参
数截取的开始位置
第二个参数是截取的结束的位置
截取的新数组,包含开始位置,不包含结束位置
特点:
1.当参数为负数的时候,截取规则是从前向后截取,因此如果都是负数,则起始位置的数值要比结束位置小,倒数的位置从1开始
2.如果只写一个参数,则从当前位置一直截取到最后
3.参数只能是正整数,负整数和0,非法字符会解析成0
4.如果不写参数,就会完成整个数组的赋值
5.需要保证结束位置在开始位置之后(截取数组方向只有从前往后),否则无法截取内容
var arr4 = arr2.slice(2,4);
console.log(arr4);
var arr5 = arr2.slice(-4,-2);
console.log(arr5);
var arr6 = arr2.slice('嘉敏');
console.log(arr6);
var arr7 = arr2.slice();
console.log(arr7);
数组检测
every(): 监测数组中所有的元素是否满足所设置的条件,如果有一个不满足则返回false,都满足则返回true
some(): 监测数组中是否有元素满足所设置的条件,如果有一个满足则返回true,都不满足返回false
var arr9 = [7,12,4,6,8,10];
var bol1 = arr9.every(function(aa){
console.log(aa);
return aa>3;
});
console.log(bol1);
var bol2 = arr9.some(function(aa){
return aa<5;
});
console.log(bol2);
console.log('-------------');
var bol3 = arr2.some(function(aa){
return aa == '西施';
});
console.log(bol3);
数组的过滤
filter()
数组循环,返回新数组
map()
var arr10 = [1,2,3,4,5,6,7,8];
var arr11 = arr10.filter(function(aa){
return aa%2==0;
//return typeof(aa)=='String';
});
console.log(arr11);
var arr12 = arr10.map(function(aa){
return aa+'px'
});
console.log(arr12);
数组合并
把多个数组合并成一个数组
concat(数组1,数组2,数组3···数组n)
返回一个合并后的数组,新数组
var arr1 = ['张飞','李逵']
var arr2 = ['林黛玉','薛宝钗']
var arr3 = arr1.concat(arr2);
console.log(arr3);
var list = document.getElementById("list");
for (var i=0 ;i<arr3.length;i++){
list.innerHTML += '<li>'+arr3[i]+'</li>';
}
var list1 = document.getElementById("list1")
for (var i=0;i<arr3.length;i++){
list1.innerHTML += '<li>'+arr3[i]+'</li>';
}
把数组拼接成一个字符串
join(参数符号)
参数:一个字符,该字符可以是任意字符,默认是英文的逗号(,)
返回值是合并之后的字符串
var str1 = arr3.join(',');
console.log(str1);
list1.innerHTML+='<li>'+str1+'</li>';