数组中的去重复:
如果需要去重复,我们首先要将数组中的任意两个元素对比,不相等的取出组成一个新的没有重复的数组;
但是要想成功实现任意对比;
我们需要对数组进行排序:
排序的方法:1:冒泡排序;
使用双重for循环实现数组的从小到大 的排序;
var arr=[1,2,2,1,5,4,3,2,5,5,5,5,6,7,8,11,11,10,25,25];
//数组去重复的基本思路:1,前后对比所有的元素,如果不相等,就取出前一个元素,形成新数组;
//首先对数组arr进行数组排序:
/var n=null;
for(var j=0;j<arr.length;j++){
for(var i=0;i<arr.length;i++){
if(arr[i]>arr[j]){
n=arr[j];//先将小的那个数赋值给n;
arr[j]=arr[i];
arr[i]=n;
}
}
}/
可是实际双重for循环在内存中占据资源太多,所以我们尽量使用一个数组自带的排序方法:sort()排序;
1,sort();
原理:利用所有的数据在nuicode编码表中的序号进行大小对比;因为该表没有存储超过9以上的数字;
所以直接使用无法实现9以上的数字的排序;所以为了实现对任意数字的排序,我们需要引入一个自定义方法;
arr=[];
arr.sort(function (a,b){return a-b});
这样就可以实现对数组的排序;
2,尾部插入元素;push();
push();作用是在数组的尾部自动追加一个或者多个元素,并且能够自动往后延续;
arr.push(brr[i]);
这句话可以解释为:我们给arr这个数组的尾部插入一个元素,这个元素是brr数组的某一个;
arr是要插入元素的数组对象;
push(这里写入的是要放进去的内容;)
练习:
var arr=[1,2,2,1,5,4,3,2,5,5,5,5,6,7,8,11,11,10,25,25];
将该数组中的不重复元素取出来形成一个新数组;
3, pop();在尾部删除一个元素;
arr.pop();//删除数组中最后一个元素,并且将删除后的数组重新返回;
console.log(arr);
4,shift();在头部插入一个元素;
arr.shift(value);
5.在数组的头部删除一个元素:
arr.unshift();//删除数组中的第一个元素,并且将删除后的数组返回;
练习: 排队买票;
总共可以有:50张票;
目前排队:27人;
如果:后面来了32人继续排队;请问从第几个人之后无法买到票;给出提示;
6.将数组的内容一次性提取出来,形成一个字符串。
arr=[2017,12,21];
join();
arr.join("-");以短横线的方式将元素连起来,并且形成一个string数据输出;
7,将两个小的数组,拼接在一起:
concat();
如果我们将a,b两个数组拼接在一起:
a.concat(b);
此时会得到一个新的数组,这个数组包含a,b中原来元素;
8,数组的截取:slice(start,end);
start开始截取的元素下标号;
end:结束的 元素下标:但是end这个下标不会被截取到;
arr.slice(0,6);
9,批量的添加修改或者删除;splice(index,how many,item,item)
arr.splice(0,6)
splice()中的第二参数是指需要获取多少个?如果我们需要配获取10个,那就写10;
他和slice()的区别是。slice()后面的第二个参数是表示我们截取数组结束位置的下标号 ;
2,关联数组:
索引数组的下标:是隐藏的,但是呈现规律性存在从0开始计算;
但是关联数组:下标直接出现在数组里,与元素的内容形成一个键值对形态存在;
var arr=[“name”:“tom”,“age”:21];
这样的数组我们称为:关联数组:hash数组;
关联数组的创建:
var arr=[];
arr[“name”]=“tom”;
arr[“age”]=21;
arr[“city”]=“北京”;
console.log(arr);
关联数组的最大特点:1,没有数组长度。2,数组的下标称为了元素的键名:关联数组不存在重复的元素;