JavaScript重新学习、捡漏 (6)
Array对象
- 数组对象的创建
<script type="text/javascript">
</script>
//数组对象的创建
//1、创建空数组
var arr = [];
var arr = new Array();
//2、创建有值数组
var arr = [1,2];
var arr = new Array(1,2);
</script>
- 获取数组长度,数组的 length 属性可以获取数组的长度
<script type="text/javascript">
var arr = new Array(1,2);
console.log(arr.length);
</script>
- 数组的反转
<script type="text/javascript">
var arr = new Array(1,2);
var newArr = arr.reverse();
console.log(newArr);
</script>
4.数组添加元素
<script type="text/javascript">
var arr = new Array(1,2);
arr.push(3); //在数组后边加载
console.log(arr);
arr.unshift(0); //在数组前边加载
console.log(arr);
</script>
5.数组删除元素
<script type="text/javascript">
var arr = new Array(1,2,3);
arr.pop(); //在数组后边删除
console.log(arr);
arr.shift(); //在数组前边删除
console.log(arr);
</script>
6.获取数组元素的索引值
<script type="text/javascript">
var arr = new Array(1,2,3,2,1);
var index = arr.indexOf(2); //索引值是下标从0开始第一次出现的索引值
console.log(index);
var lastIndex = arr.lastIndexOf(1); //索引值是从数组末尾开始第一次出现的索引值
console.log(lastIndex);
</script>
7.数组的拼接
<script type="text/javascript">
var arr = new Array(1,2,3,2,1);
var str = arr.toString(); //此方法默认是用逗号进行拼接
console.log(str);
var str = arr.join("-"); //此方法是用输入的符号进行拼接
console.log(str);
</script>
8.数组的合并
<script type="text/javascript">
var arrOne = new Array(1,2,3,2,1);
var arrTwo = new Array(6,3,2,1);
var newArr = arrOne.concat(arrTwo);
console.log(newArr);
</script>
9.数组的分割,slice方法不会对原来的数组造成影响
<script type="text/javascript">
var arr = new Array(1,2,3,2,1);
var newArr = arr.slice(2,4); //包含前不包含后
console.log(newArr);
console.log(arr);
</script>
- 数组的分割与添加:splice(),此方法会对原数组造成影响,返回值是一个数组(被删除的元素)
<script type="text/javascript">
var arr = new Array(1,2,3,2,1);
var arrOne = arr.splice(2,1); //从下标2开始删除一个元素
console.log(arrOne); //打印出删除的元素
console.log(arr);
var arrThree = arr.splice(0,1,5,6); //从下标0开始删除一个元素,并且添加5,6两个元素
console.log(arrThree); //打印出删除的元素
console.log(arr);
</script>
- 数组的排序,默认是按字母的升序排序
注1
<script type="text/javascript">
var arr = new Array(1,2,3,2,1);
var newArr = arr.sort();
console.log(newArr);
</script>
- 对数组全部元素逐一进行操作:map()
如下是一个例子:定义了一个addOne
函数,addOne
函数的第一个参数index
代表进行操作的数组的每一个元素,例如addOne
函数就是对数组全体进行了 +1的操作,map()
的使用方法就是把定义好的函数做函数的参数,返回值就是处理好的函数, 当然,map()
的参数当然也可以是一个匿名函数
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
function addOne(index){
return index * 2;
}
var newArr = arr.map(addOne);
console.log(newArr);
</script>
- 查看数组的元素是否全部满足 要求 ,例如下述例子,这个例子是判断数组里边的每一个元素的是否都大于0,如果是则返回true,如果是否就返回false,用法同 13的
map()
方法一样
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
var result = arr.every(function(age){
return age > 0;
})
console.log(result);
</script>
- 查看数组是否有元素满足 要求
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
var result = arr.some(function(age){
return age > 0;
})
console.log(result);
</script>
- 删选出符合要求的元素并且返回:
filter()
,返回值是由符合要求的元素组成的一个数组
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
var result = arr.filter(function(age){
return age > 1;
})
console.log(result);
</script>
- 返回数组的原始值:
valueOf()
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
console.log(arr.valueOf());
</script>
Tip小贴士:
1.在数组的sort()
方法中,对数字排序会出现问题,因为函数本身是默认以字母升序进行排序的,如果对数字星星排序的话我们需要在方法的参数中加一个匿名函数来进行处理,如下:
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
var newArr = arr.sort(function(a, b){
return a - b; //返回a-b是按升序排列的,返回b-a是用逆序排列的
});
console.log(newArr);
</script>
2.有两种方法可以判断一个元素是否为数组对象 instanceof、Array.isAarray
,是的话返回true,不是则返回false
<script type="text/javascript">
var arr = new Array(1,2,3,2,1,11);
console.log(arr instanceof Array);
console.log(Array.isArray(arr));
</script>