数组(Array)
1.数也是一个对象 2.它和我们普通的对象功能类似,也是用来存储一些值的 3.不同的是普通对象是使用字符串作为属性名的,而数组则使用数字来作为索引操作元素 4.数组的存储性能比普通对象好,在开发中经常使用数组来存储一些数据 5.使用typeof检查数组会返回object
1、索引:从0开始的整数就是索引
var arr = new Array();
arr[0] = 10;
arr[1] = 33;
arr[2] = 55;
console.log(arr[0]);
console.log(arr.length);
arr[arr.length] = 70;
数组对象的创建的两种方法
检查是否为数组
1.instanceof运算符,可以判断一个对象是否属于某种类型 2.Array.isArray()用于判断一个对象是否属于为数组,是HTML5新提供的方法
console.log(arr instanceof Array);true
console.log(Array.isArray(obj));true
1.3添加删除数组元素
1.push(参数1…) 末尾添加一个或多个元素,注意修改原数组 并返回新的长度 2.pop() 删除数组最后一个元素 返回它删除的元素的值 3.unshift(参数1…) 向数组的开头添加一个或更多元素,注意修改原数组 并返回新的长度 4.shift() 删除数组的第一个元素,数组长度减1,无参数,修改原数组 并返回第一个元
var arr=[];
arr.push('sb','lyh');
console.log(arr);
console.log( arr.pop());
console.log(arr);
arr.pop
arr.unshift('1','jx','ust',)
console.log(arr);
筛选数组
有一个包含工资的数组[1500,1200,2000,2100,1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面
var arr=[1500,1200,2000,2100,1800];
var newArr=[];
for(var i=0;i<arr.length;i++){
if(arr[i]>=2000){
newArr.push(arr[i]);
}
}
console.log(newArr);
foreach(),slice(),splice()
foreach()
- 这个方法只支持IE8以上的浏览器
- 需要一个函数作为参数
- 像这种函数由我们创建但是不是由我们调用的,我们称为回调函数
- 数组中有几个元素,就会执行几次,每次执行时,浏- 览器会将遍历到的元素以实参的形式传递进来,我们可以定义形参读取这些内容
- 浏览器会在回调函数中传递三个参数:第一个就是当前正在遍历的元素;第二个时当前遍历元素的索引;第三个就是正在遍历的数组
var arr = ["猪八戒","沙和尚","唐僧","孙悟空"];
arr.foreach(function(value , index , obj){
console.log(value)}
);
slice()
- 可以用来从数组中提取指定的元素
- 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回
- 参数:第一个是截取开始位置的索引,包含开始索引;第二个是截取结束的位置的索引,不包含结束索引
- 索引可以传递一个负值,如果传递一个负值,则从后往前计算
var arr = ["猪八戒","沙和尚","唐僧","孙悟空"];
var result = arr.slice(1,2);
result = arr.slice(1,-1);
console.log(result);
splice()
- 使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回
- 参数:第一个,表示开始的位置的索引;第二个,表示删除的数量;第三个及以后,可以传递一些新的元素,这些元素会自动插入到开始位置索引前边
数组排序
reverse()
- 颠倒数组中元素的顺序,无参数
- 该方法会改变原来的数组,返回新数组
sort()
- 对数组的元素进行排序
- 该方法会改变原来的数组,返回新数组
var arr=[1500,1200,2000,2100,1800];
arr.reverse;
console.log(arr);
var arr2=[1,2,59,4,79,87];
arr2.sort(function(a,b){
return b-a;
return a-b
}
);
console.log(arr2);
函数的方法call()和apply()
- 这两个方法都是函数对象的方法,需要通过函数对象调用
- 当对函数调用call()和apply()都会调用函数执行,fun(),fun.call(),fun.apply()
- 在调用call()和apply()可以将一个对象指定为第一个参数此时这个对象将会成为函数执行时的this
function fun(){
alert(this.name);}
var obj = {name :"obj"
sayName:function(){
alert(this.name);
}
};
var obj2 = {name:"obj2"};
fun.apply(obj);
obj.sayName.apply(obj2);
function fun(a,b){
console.log("a=" + a);
console.log("b=" + b);
}
var obj = {name :"obj"
sayName:function(){
alert(this.name);
}
};
fun.call(obj,2,3);
fun.apply(obj,[2,3]);
var obj2 = {name:"obj2"};
|