Array数组内函数
concat()
功能:合并数组,并且生成新数组。对原数组没有改变。
不传参数的时候,相当于生成新数组。
格式:数组.concat(数据...数组);
返回值:生成的新数组
代码示例:
1 //.concat('要添加的数组元素') 2 var arr = [11, 13, 22, 33]; 3 var arr1 = arr.concat(44, 55); //给arr数组添加两个元素 44, 55 4 //并生成一个新的数组,不改变原有数组arr。 5 alert(arr);//11, 13, 22, 33 6 alert(arr.concat(88, 88));//11,13,22,33,88,88 7 alert(arr1);//11,13,22,33,44,55 8 var arr1 = [10, 20, 30]; 9 var arr2 = [40, 50, 60]; 10 var arr = arr1.concat(arr2, 10, true, [30, 40]); 11 alert(arr.length); 12 alert(arr1); //10, 20, 30, 40, 50, 60, 10, true, 30, 40 13 alert(arr2); //40, 50, 60 14
-----数组内函数 栈 --------------------------------------------------------------
栈:古代把木盆叫做栈。
特点:先进后出。
实现方式:从同一头进,从同一头出。
push()
格式:数组.push(参数)
参数:添加进数组的元素。
功能:给原数组的末尾添加元素。直接修改原数组。
返回值:插完元素以后数组的长度。
pop
功能:从数组的尾部取元素,一次只能取一个。直接修改原数组。
格式:数组.pop();
返回值:取下的元素
代码示例:
1 //.push(数组元素) 给数组在末尾添加数组元素。直接修改原数组。返回值为插入元素后,数组的长度 2 var arr = ['上', '下']; //数组可以是字符串、数字、boolean值。 3 var res = arr.push('左'); //.push()函数的返回值为 插入后数据的长度。 4 alert(arr);//结果 上,下,左 5 alert(res);//查看插入后数组的长度。 6 7 var arr = [100, 200]; //数组可以是字符串、数字、boolean值。 8 arr.push(300); 9 alert(arr);//结果 100,200,300 10 //pop() 从数组末尾取走一个数组元素,并新建一个数组。直接修改原数组。返回值为取走的数。 11 var arr = [100, 200, 300] 12 var res = arr.pop() 13 alert(arr);// 100, 200, 300 14 alert(res) //300 函数的返回值为取走的数。
示例2:
1 var arr = ["钢铁侠", "雷神", "美国队长"]; 2 var res = arr.push("蚁人", "蜘蛛侠"); 3 alert(arr); // 钢铁侠, 雷神, 美国队长,蚁人, 蜘蛛侠 4 alert(res); //5 5 ------------------------------------------------------ 6 var arr = ["钢铁侠", "雷神", "美国队长"]; 7 var res = arr.pop(); 8 alert(arr);//雷神, 美国队长 9 alert(res);//钢铁侠
-----------------------栈 end------------------------------------------
------------------------数组内函数 队列-----------------------
队列
特点:先进先出。
实现原理:从末尾进,从排头出。
.push
.shift()
功能:从数组的排头取元素。
格式:数组.shift()
返回值为取走的数据。
.unshift()
功能:从数组的头部插入元素。
格式:数组.unshift(任意参数)
返回值:插完元素以后数组的长度
代码示例:
//.push() 用法同上。 //.shift() 从数组的排头去元素。返回值为取走的数。直接修改原函数。 var arr = [100, 200, 300]; var res = arr.shift(); alert(res);//100 alert(arr); //200, 300 /*-----------------------------------------------------------*/ // .unshift() 从元素的头部 插入数组元素。返回值为插入后的 数组长度。 var arr = [true, false, true]; var res = arr.unshift(false); alert(res);//4 alert(arr);// false,true,false,true 示例2; var arr = ["X教授", "琴", "镭射眼"]; /*arr.push("震荡波"); alert(arr);*/ /*var res = arr.shift(); alert(arr);//琴, 镭射眼 alert(res);*///X教授 /*看.shift时请把.push和.unshift注释掉来看 arr 是公用的*/ var res = arr.unshift("天启", "雷神"); alert(arr);//天启, 雷神,X教授, 琴, 镭射眼 alert(res);//5
---------------------------------队列end-------------------------------
------------------------2018年08月27日补充------------------------
数组内函数:
slice
slice()
格式:数组.slice(start, end);
功能:提取对应范围的元素,生成一个新数组。并不会修改原数组。
参数:start 从哪个下标开始去提取
end 从哪个下标结束 [start, end) 这里提取的数组元素不包括end下标的这一个。
返回值:新数组。
示例:
var arr = ["沙皮", "巴哥", "京巴", "西施犬", "西藏犬", "冠毛犬"]; var newArr = arr.slice(2, 5); alert(newArr);//京巴,西施犬,西藏犬 alert(arr);//沙皮,巴哥,京巴,西施犬,西藏犬,冠毛犬 说明不会修改原数组
splice
splice
格式:数组.splice()
参数:第一个参数,start,从哪个位置开始截取
第二个参数,截取元素的个数
第三个参数往后,在start这个位置,我们插入的元素。
【注】splice会修改原数组。
返回值:删除掉的元素,组成的数组。
功能:
增
删
改
//splice
//用法 .splice(要截取的位置, 要截取几个数组元素-可以不写既不截取, 在第一个参数描述的位置插入此处往后写的数组元素)
代码示例:
插入元素
var arr = ["哈士奇", "萨摩耶", "阿拉斯加"]; //插入元素 arr.splice(1, 0, "比熊", "博美");//在下标1的数组的位置,截取0个元素,增加元素 "比熊", "博美" alert(arr); //哈士奇,比熊,博美,萨摩耶,阿拉斯加
删除元素
var arr = ["哈士奇", "萨摩耶", "阿拉斯加"]; //删除(截取)元素 var res = arr.splice(1, 2);//从下标1的数组元素的位置,截取1个数组元素。 alert(arr);//哈士奇 alert(res);//萨摩耶,阿拉斯加 说明.splice的返回值为 删除的元素。
修改元素(先删除后插入)
var arr = ["哈士奇", "萨摩耶", "阿拉斯加"]; //改(先删除后插入) arr.splice(1, 1, "金毛");//在下标2的数组元素的位置开始,截取(删除)一个元素,在添加一个元素 "金毛"。 alert(arr);//哈士奇,金毛,阿拉斯加
join
join 使用拼接符,将数组中的元素拼接成字符串。
格式:数组.join(拼接符)
返回值:字符串
var arr = ["哈士奇", "萨摩耶", "阿拉斯加"]; var str = arr.join("999");//用999连接所有的数组元素并组成一个字符串 alert(str);//哈士奇999萨摩耶999阿拉斯加 var str1 = arr.join('');//用空字符串拼接 alert(str1);//哈士奇萨摩耶阿拉斯加 var str1 = arr.join('+');//用字符+拼接 alert(str1);//哈士奇+萨摩耶+阿拉斯加
如果想拼接完,还让它为数组可以用Number( )进行强制类型转换(必须是能转换的,例如'1' '10'等这样的字符数数字)。
var arr = [1, 2, 3, 4, 5, 6]; var res = arr.join('');//用空字符串拼接数组元素。 alert(res);//123456 字符串型 alert(typeof res);//string 是字符串 //如果我门想让它转为数字类型(Number),利用Number进行强制类型转换即可。 alert(Number(res));//123345 数字型 alert(typeof Number(res));//number 是数字
对数组内函数的总结:
不会改变原数组:concat slice join
会改变原数组:push pop push shift unshift splice