js中数组的创建,检测,删除修改等方法
数组的两种创建方法:
- 第一种:使用[]符号直接创建数组:var arr = [1,2,3];
- 第二种:使用Array方法创建数组:方法使用情况如下:
2.1 var arr = new Array(); // 创建了一个空的数组。
2.2 var arr = new Array(a); //这个a表示当只有一个参数时,数组的长度就为这个a,数组里有a个空的数组元素。
2.3 var arr = new Array(a,d,…); //这个创建方式表示 创建一个数组,这个数组里的元素有a,b,c,…等。
<script>
var arr1 = [1,2,3];
var arr2 = new Array();
var arr3 = new Array(2);
var arr4 = new Array(2,3);
console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);
</script>
运行结果如下:
检测是否为数组的两种方式
- 第一个方法是:instanceof 运算符,它可以用来检测是否为数组
- 第二个方法是:Array.isArray(arr);方法可以用来检测是否为数组
if(arr1 instanceof Array){
console.log("这是一个数组");
}else{
console.log("这不是一个数组");
}
if (Array.isArray(arr2)) {
console.log("这是一个数组");
} else{
console.log("这不是一个数组");
}
添加删除数组元素
- push(a)是可以在数组的末尾给数组追加新的元素,参数为要增加的元素,方法结束以后返回的值是新数组的长度。
- unshift(a)是可以在数组的最前面增加新的元素,参数为要增加的元素,方法结束以后返回的值是新数组的长度。
- pop()是一个无参的方法,他的作用是删除数组的最后一个元素,修改原数组,返回值为他删除的元素的值
- shift()是一个无参的方法,他的作用是删除数组的第一个元素,数组长度减1 修改原数组。返回值为第一个元素的值
arr1.push(4);
console.log(arr1);
console.log(arr1.shift());
arr1.unshift('a');
console.log(arr1);
console.log(arr1.pop());
数组排序
- reverse(),颠倒数组中元素的顺序,是一个无参的方法,返回值是新的数组。
- sort(),对数组的元素进行排序该方法、是一个有参的方法,返回值也是新数组。在这个方法的使用中有一个固定格式,需要在sort()中使用一个function()函数,让sort进行排序判断,具体如下:
使用结果如下:
arr1.reverse();
console.log(arr1);
arr1 = [11,15,55,45,35];
arr1.sort(function(a,b){
return b-a;//b-a表示使用降序的方式进行排列,反过来a-b表示使用升序的方式进行排列.
});
console.log(arr1);
获取数组元素的索引号
- indexOf(),在数组中查找给定元素的第一个索引号,如果存在则返回索引号,如果不存在则返回-1.
- lastlndexOf(),查找给定元素在数组中的最后一个索引号,如果存在则返回索引号,不存在则返回-1.
使用如下:
arr1 = [11,15,55,45,35,45];
var a = arr1.indexOf(11);
console.log(a);
var a = arr1.lastIndexOf(45);
console.log(a);
数组转换为字符串
- toString(),把数组转换为字符串,逗号分隔每一项,返回值为一个字符串。
- join(),这是一个有参的方法,这个方法和toString()的区别在于join方法可以规定自己所需要的分隔符,当join()没有参数时所使用的分隔符默认为逗号。
使用如下:
arr1 = [11,15,55,45,35,45];
var a = arr1.toString();
console.log(a);
var a = arr1.join("-");
console.log(a);
数组连接以及数组截取
- concat(),连接两个或多个数组,不会影响原数组,返回值为一个新的数组,意思是虽然将两个数组进行连接,但是并不会改变任一一个数组的值,原有的数组不会改变。
- slice(),数组截取slice(开始的索引号,结束的索引号),这是一个左闭右开的区间,结束的索引号不会被使用,,不会影响原数组,返回值为被截取的新数组,
- splice(),数组删除,splice(第几个开始,要删除几个),开始的索引号会被使用,返回被删除 的新数组,这个会影响原数组,会改变原数组的值。
使用如下:
console.log(arr1.concat(arr4));
console.log(arr1.slice(4,7));
console.log(arr1.splice(3,2));
console.log(arr1);