数组:
数组也是对象
数组的循环:for() ,for in
var arr = [ 1,2,3,4,5];
typeof arr //"object"
arr instanceof Array //true
arr instanceof Object //true
for循环操作
for(var i = 0;i<arr.length;i++){
console.log(arr[i]);
}
输出结果 1,2,3,4,5
for in 循环操作
for(var key in arr){
//此时把数组的索引当key(对象中是属性名)
console.log(arr[key]);
}
输出结果 1,2,3,4,5
区别:
for 循环只能遍历到数组私有属性
for in 可以把一些自定义的公共属性遍历到(原型链)
数组的所有方法如下:
如何理解记忆
1、方法的意义和作用
2、方法的形参
3、方法的返回值
4、通过此方法,原来的数组是否发生了改变
==================================================
/**数组增加*/
1、push方法
1、数组增加 push:向数组的末尾增加新内容
2、参数:长度不限,任何数据类型都可以
3、返回值:新增后的数组长度
4、原有数组改变
2、unshift方法(注意:索引会改变索引加一)
1、向数组开头追加新内容
2、参数 可以是多个任何数据类型的值
3、返回值新增数组的长度
4、原来数组改变
3、把数组当做一个普通对象,使用对象键值对的操作给其设置新的属性(索引)
arr[arr.length]=xxxx ;//
向数组末尾追加新内容(每次增加一个)
/**数组删除*/
4、pop方法
删除数组最后一项
参数:无
返回值:被删除的那一项内容
原有数组改变了
5、shift方法(注意:索引会改变 后面每一项索引减一)
删除数组第一项
参数:无
返回值:被删除的那一项的内容
原来数组改变
6、
delete删除 索引不会变 length 不会变
arr.length-- ;删除数组最后一项
7、splice方法
数组中内置的方法,可以实现数组的增加、修改
返回值:被删除的内容(以一个新数组保持被删除的内容)
原有数组改变
splice(n,m)从索引n开始删除m个
splice(0)清空数组
splice()一项都不删除,返回一个新的空数组
实现修改
splice(n,m,x)在原有删除的基础上,用x代替删除的内容
实现增加
splice(n,0,x)一项不删把x插入到索引n的前面
splice.(0,0,x)数组前增加新元素
splice.(arr.length,0,x)数组末尾增加
/*数组查询*/
8、slice方法
参数:slice(n,m)从索引n开始找到索引m处(不包含m)
返回值:把找到的部分以一个新数组返回
原来数组不变
slice(n)从索引n找到末尾
slice(0)/slice() 数组克隆
slice() 为负数索引时 把负数索引与长度相加 再处理
9、concat方法
将多个数组拼接在一起
参数:要拼接的内容放在原数组后面 可以是一个数组,也可以是一些数据值
返回:拼接后的新数组
原来数组不变
concat()不带参数 相当于把原有数组克隆一份
/把数组转换成字符串/
10、toString方法
把数组转换为字符串(用逗号分隔)
无参数
返回值:转换的字符串
原数组不变
11、join方法
把数组按照指定分隔符转换为字符串
参数:指定的分隔符(默认逗号 ' ' .......)
返回值:转换的字符串
12、reverse方法
把数组每一项倒过来排列
无参数
返回值 排序后数组
原有数组改变
13、sort方法
实现数组排序
参数 无/回调函数(无参数 默认按首个数字从小到大排列)
返回值 排序后的数组
原有数组改变
ary.sort(function(a,b){
return a-b;//升序
return b-a //降序
})
14、indexOf/lastIndexOf
获取当前项在数组中第一次或者最后一次位置的索引
数组中这两个方法IE6-8不兼容
字符串中兼容
若查找不到返回-1
兼容写法
Array.prototype.MyindexOf=function(value){
var flag = -1;
for(var i=0;i<this.length;i++){
if(this[i] == value){
flag= i;
break;
}
}
return flag;
}
15、forEach方法
遍历数组中的每一项
arr.forEach(function(value,index){})
16、map方法
arr.map(function(value,index){})
把当前数组每一项进行操作返回
17数组去重
方法一
Array.prototype.Myunique=function(){
var arr=[ ];
for(var i=0;i<this.length;i++)
{
if( arr.indexOf(this[i]) == -1)
{
arr.push(this[i]);
}
}
return arr;
}
方法二
Array.prototype.MyUnique = function MyUnique() {
var obj = { };
for(var i =0 ;i<this.length;i++){
var cur = this[i];
if(obj[cur] == this[i]){
this[i] = this[this.length-1];
this.length--;
i--;
continue;
}
obj[cur]=this[i];
}
obj=null;
return this;
}