javascript基础语法|js数组对象的属性和方法,以及数组的遍历,去重

内建对象;
由es标准定义的对象
数组Array:和普通对象类似,数组是使用数字作为索引操作元素。
索引:index。从零开始 的整数;
数组的存储性能比普通对象好,
创建数组对象
var arr=new Array();
//添加元素数组[0]=10
arr[0]=10;
arr[1]=89;
// console.log(arr);
//读取不存在的索引,返回undefined
console.log(arr[2]);
/*
* 获取数组的长度
* 可以使用length属性来获取数组的长度
* */
//修改length
arr.length=10;
console.log(arr);

使用字面量创建数组,创建时就指定数组中元素;
var arr=[10,8,3,4,3,4,2];
console.log(arr.[0]);
使用构造函数也可以创建数组。
var arr2=new Array(10,2,3,4)
arr2=new Array(10)//表示数组长度为10

数组中的元素可以是任意 的数据类型,也可以是对象,也可以是函数
数组的方法:
push 向数组末尾添加一个或多个元素,返回数组新的长度。会改变数组自身。
var arr=['hello','nihao ',23,null,undefined];
var result=arr.push("zhuzhujing","白骨精");
console.log(result); //7
pop删除最后一个元素并返回数组中最后一个元素,会改变数组自身。
var result1=arr.pop();
console.log(result1); //"白骨精”
unshift向数组中开头添加一个或多个元素,返回数组新的长度,会改变数组自身
shift 可以删除数组的第一个元素,并将删除的元素作为返回值。会改变数组自身。
数组的遍历:
for (var i=0; iconsole.log(arr[i]);
}
【javascript基础语法|js数组对象的属性和方法,以及数组的遍历,去重】forEach方法:
遍历数组,只支持IE8以上的浏览器
将函数作为参数
由我们创建但是不由我们调用,称为回调函数。
数组中有几个元素调用几次,浏览器会将遍历到的元素以实参的形式传递进来,可以定义形参来读取这些内容
浏览器会在回调函数中传递3个参数
1:当前正在遍历的数组元素2:索引3:正在遍历的数组对象。

var arr=[1,"白骨精",3,4,5]; arr.forEach(function (a,b,c) { console.log(a); console.log(b); console.log(c); });

javascript基础语法|js数组对象的属性和方法,以及数组的遍历,去重
文章图片

slice方法:在数组中提取指定元素,不会改变原数组。
会将截取到的数组封装到一个新数组并返回。
参数:开始索引,结束索引 (不包含结束索引)添加的元素
第二个可以省略,会截取开始索引往后的所有元素
索引可以传递一个负值。从后往前计算
var arr=[1,"白骨精",3,4,5];
arr.forEach(function (a) {
console.log(a);
});
var result=arr.slice(1,-1);
console.log(result);
splice 删除指定元素,并向数组添加新元素。会改变原数组,会将指定元素从原数组中删除,返回删除的元素
参数:开始位置索引,删除元素的数目新增加的元素
var arr=[1,"白骨精",3,4,5];
arr.forEach(function (a) {
console.log(a);
});
var result=arr.splice(1,2);
console.log(result); //["白骨精", 3]
console.log(arr); //[1, 4, 5]
var result=arr.splice(1,2,"牛魔王");
console.log(arr); // [1, "牛魔王", 4, 5]

去除数组中重复的元素:
var arr=[1,3,3,4,5,3,3,6,1];
//去除重复的数组元素
for (var i=1; ifor (var j=0; jif (arr[i]==arr[j]){
arr.splice(i,1);
j--;
//当有两个相同的元素紧挨着时,
//会出现错误,后边的元素会自动补位
//此时不会在比较这个位置,需要再比较一下这个位置的元素
// 因此需要j--
}
}
}
数组的其他方法 :
concat()可以链接两个或多个数组 ,该方法不会改变原数组
var result=arr.concat(arr2,'xiaoxiao');
join(参数)不会改变原数组 ,将数组转换为一个字符串
var result= arr2.join('#');
console.log(result); //小小#4#5#pig
不传参数会默认","连接
reverse()
会改变原数组,对数组元素进行反转
sort()对数组中的元素进行排序
会改变原数组。按照unicode 编码进行排序,对于纯数字的排序,也会按照Unicode编码进行排序
对数字排序可能得到错误的结果。
可以自己指定排序的规则
返回>0,元素交换位置,
返回<=0,不交换
return a-b,升序排列;
return b-a 降序排列

    推荐阅读