上次我们学习了数组、数组取值、定义对象、循环对象及其部分应用。现在我们讲数组函数以及其练习题。 数组函数分为concat、isNaN、pop、push、shift、push、unshift、splice、reverse、join、分割函数和sort。
concat:合并数组返回合并后的新数组。 新数组 =数组1.concat(数组2)
例题: var arr=[1,2,3]; var arr2=[5,6,7] 将其合并
答:var3=var2.concat(arr); console.log(arr3)
Array.isArray(值): 检测是否是数组类型,返回bool类型 。 ==> Array.isArray
例:var arr = [1,2,3]; var arr2 = [5,6,7]; console.log(Array.isArray(arr)) ==> true
pop 删除数组中的最后一个元素,返回删除的元素值。 例:
var arr=[100,200,300,400] var i=arr.pop() console.log(arr,i) 得==>[100,200,300] 返回400
shift:删除数组第一个元素,返回删除的元素值 例:var arr=[100,200,300,400]
var ii = arr.shift(); console.log(arr,ii); 得==> [200,300,400] 返回 100
push() :数组元素最后添加值 返回添加后的数组的个数/长度 数组.push(数组1,数组2)
unshift() 往数组元素开头添加值,返回添加后的数组的长度。
splice 1. () 删除指定的元素/在指定的位置添加元素,影响原数组,返回的是 删除的元素(数组类型)
数组名.splice(开始下标,删除的个数) 影响原数组 返回值是删除掉的数(数组类型)
例:var i=arr.splice(2,) ==>从下标为2开始删除,删除2个 var arr = [1,2,3,4,5];
var i= arr.splice(2,2) ; console.log(arr,i) ==>[1,2,5] [3,4]
2. 数组名.splice(开始下标,0,值) 在开始下标位置前插入值,0 不删除,影响原数组 返回值为空数组[ ]. 例: var arr = [1,2,3,4,5]; var ii = arr.splice(0,0,66666) console.log(arr,ii) 结果为[66666,1,2,3,4,5].
3.数组名.splice(开始下标,删除的个数,添加值) 影响原数组 返回删除的个数。 例var arr = [1,2,3,4,5]; var ii = arr.splice(2,2,777); console.log(arr,ii) 结果为 [1,2,777,5] 返回值 [3,4]。
reverse() 数组值 反转。返回一个新的数组 例:
var arr = [1,2,3,4,5]; arr.reverse(); console.log(arr) 结果为[5,4,3,2,1]
join() 将数组元素拼接成字符串,默认通过逗号拼接,也可以通过指定的符号进行拼接
var arr = [1,2,3,4,5]; var newArr = arr.join('-'); 得 1-2-3-4-5 var newArr = arr.join();得 1,2,3,4,5
分割数组 数组名.slice(开始下标,结束的下标(不包含))返回一个新的数组:分割的数组块
var arr = ['a','b','c','d','e','f','g'] var ii = arr.slice(2,6) console.log(arr,ii) 结果:[c,d,e,f]
sort() 排序 sort()数组元素值进行排序(数字、字母) 升序或降序 默认从小到大排序
数组、字符串、日期、数字、js函数 自定义函数function(){} 现在的排序,仍按照字符串的比较方式来进行排序的 // return a-b 升序 // return b-a 降序
sort例题:按照工资从高到低排序
var arr = [{id:1,name:'zs',salary:2000}, {id:2,name:'ls',salary:5000},
{id:3,name:'zsww',salary:14000}, {id:4,name:'zzls',salary:2000} ] arr.sort(function(a,b){ return b.salary-a.salary }) console.log(arr); 答案如下图
接下来练习题如下:
一、定义两个数组,然后将两个数组合并成一个新的数组
答:
<script>
var arr =[1,'a','2',2,true,1000]
var arr2=[11,22,33,44,55];
var newArr =[];
for(var v of arr){
newArr.push(v);
}
for(var v of arr2){
newArr.push(v);
}
console.log(newArr)
</script>
二、循环for(循环5次)弹出5个输入框,让用户输入5个值prompt();将值保存到数组中push,检查5个值是否有长度length大于5的,如果if有超过5的将该值在数组中删除 数组.splice(开始下标,个数)
答:
<script>
var arr =[];
for(var i=1;i<=3;i++){
var v=prompt('输入要存储的值');
arr.push(v);
}
for(var i=0;i<arr.length;i++){
if(arr[i].length>5){
arr.splice(i,2)
}
}
console.log(arr)
</script>
三、定义一个数组,数组中存储10个值。
答:
<script>
var arr=[100,20,200,30,400,50,70,80];
var newArr =[]
for(var i=0,i<arrr.length;i++){
if(arr[i]>=100){
arr.splice(i,1)
}
if(arr[i]<100){
newArr.push(arr[i]-10)
}
}
console.log(newArr)
</script>