---恢复内容开始---
数组的一些简单属性。
1. 数组的插入和删除
push() 插入数组的尾部,可以插入任意数量的参数(但是要逐个的插入数组,要不然会把插入的多个参数当成一个解析),返回修改后数组的长度。
pop() 删除数组的最后一个元素,减少数组的length值,然后返回移除后的数组。
unshift() 将元素逐个插入到数组的头部。
shift() 从数组的头部删除。
2. 数组的排序
reverse() 将数组逆向排序(仅仅是逆向排序,并没有进行大小的排序)。改变了原数组。
例:var arr = [3,8,9,1,4];
console.log(arr.reverse()); //输出结果是 [4,1,9,8,3]
sort() 将数组从小到大排序,原数组也升序排序了。
例:var arr = [3,8,9,1,4]
console.log(arr.sort()); //输出结果是 [1,3,4,8,9]
还可以这样做:
arr.sort(function(a,b){return a-b;})
a-b为升序输出,b-a为降序输出;
3. 数组的合并
concat() 追加数据,创建一个新的数组,不改变原数组(字符串为拼接)。
4. 数组中数据的提取
slice() 不修改原数组,将原数组中的制定区域数据提取出来。slice[start,end);
var arr = [2,5,8,0,"小丸子","大白"];
var arr2 = arr.slice(1,3); //(1,3) 表示的是下表区域:[1,3);
console.log(arr); // arr = [2,5,8,0,"小丸子","大白"];
console.log(arr2); // arr2 = [5,8];
5.数组中最重要的
splice() 截取原数组中指定的数据,会改变原数组。
a> 两个参数表示删除操作:splice(start,length);
var arr = [2,5,8,0,"小丸子","大白"];
var arr2 = arr.splice(4,2); //第一个参数表示要开始截取的下标位置,第二个参数表示截取的长度。
console.log(arr); // arr = [2,5,8,0];
console.log(arr2); // arr2 = ["小丸子","大白"];
b> 三个或以上参数,且第二个参数为0,表示插入 splice(start,0,数据,数据,..);
var arr = [2,5,8,0,"小丸子","大白"];
arr.splice(1,0,"冬瓜","荔枝"); //在下表为1的位置插入。
console.log(arr); // arr = [2,5,1,0,"冬瓜","荔枝",8,0,"小丸子","大白"];
c> 如果有3个或以上的参数,且第二个参数不为0,则表示替换。 splice(start,length,数据,数据,..);
var arr = [2,5,8,0,"小丸子","大白"];
arr.splice(1,1,"青蛙","蜘蛛");
console.log(arr); // arr = [2,"青蛙","蜘蛛",8,0,"小丸子","大白"];
5. 数组比较:([] == []) //返回false,他们的物理地址不一样。
6. 通过不引入第三个变量,将两个数位置颠倒。
例:
arr[2]=arr[2]+arr[3];
arr[3]=arr[2]-arr[3];
arr[2]=arr[2]-arr[3];
7. 数组的去重
1.先排序
arr.sort();
var newArr = [];
for(var i=0;i<arr.length;i++)
{
if(arr[i] != arr[i+1])
{
newArr.push(arr[i]);
}
}
2. 关联数组,定义对象,判断数组值在对象属性值中是否为空
var arr=[1,2,3,3,4,5,3,4,5]
var h={ };
var r=[ ];
for(i=0;i<arr.length;i++)
{
if(!h[arr[i]])
{
r.push(arr[i])
h[arr[i]]=true
}
}
3.
for (var i=0;i<arr.length-1;i++)
{
for(var j=i+1;j<arr.length;j++)
{
if(arr[i] == arr[j])
{
arr.splice(j,1);
j--;
}
}
}
4.利用index.of
for(i=0;i<arr.length;i++)
{
if(r.indexof(arr[i])==-1)
{
r.push(arr[i]);
}
}