继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Kevin带你飞(5-2): JavaScript-数组深入

凯文欧巴iii
关注TA
已关注
手记 13
粉丝 14
获赞 214

原本分享完数组 应该是字符串的学习, 但发现数组还有一些需要补充扩展的一点小知识,那就接着来深入学习数组吧。

再深入学习之前,先看看(5-数组)那天留的小练习题吧。
回顾数组一:定义一个含有5个数的数组,用两种遍历方法输出每个数

var arr1 = new Array(5);
arr1 = [1,2,3,4,5];     
//遍历数组
    //for
for(var i=0; i<arr1.length;i++){
    console.log(arr1[i]);
}

    //for in
for(i in arr1){
    console.log(arr1[i]);
}

回顾数组二:定义一个空数组,利用循环往数组中添加50个数(30--79)

var num = 30;
var arr = new Array();
for(a =0; a<50; a++){
    arr.push(num++);
}
console.log(arr);

回顾数组三:定义一个无序数组,利用sort对数组进行正序排序

var arr = [1,4,23,6];
arr.sort();     //[1,23,4,6]

//< 0  left right
//== 0 
//> 0  right left

//从小到大
arr.sort(function(left,right){
    return left - right;
});

//从大到小
arr.sort(function(left,right){
    return right - left;
});

回顾数组四:生成一个随机数num,判断num 乘以100是否大于50

var num = Math.random()*100;
    console.log(num);

1.数组方法扩展-concat

concat(item1,item2...) 组合多个数组,返回新数组,不操作原数组
arr1.concat(arr2,arr3,arr4...) (arr1不会发生改变),若想改变,须重新赋值,如:arr1 = arr1.concat(arr2);

示例:arr1 = [1,2,3,4,5]; arr2 = [6,7];
1、arr1.concat(); //返回arr1
2、arr1.concat(arr2); //返回[1,2,3,4,5,6,7]


2.数组方法扩展-slice

slice(start,end) 从start开始到end(不包含end),返回数组的一段,不操作原数组
如: arr = [1,2,3,4,5];
1、start和end都不写 返回整个数组arr,常用来复制数组
arr.slice() 返回[1,2,3,4,5]
2、如果end不写,从start开始到数组结束
arr.slice(1,4); 返回[2,3,4]
3、如果start是负数(-1,-2...),从数组最后一个开始返回对应的个数,大于数组的长度返回整个数组
arr.slice(-1); 返回 [5] arr.slice(-2); 返回 [4,5] arr.slice(-9); 返回arr


3.数组方法扩展-splice

splice(start,deleteCount,arr1) 从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素,操作的是原数组
如: arr = [1,2,3,4,5];
1、start和deleteCount都不写 返回空数组[]
arr.splice() 返回[]
2、如果deleteCount不写,从start开始到数组结束
arr.splice(1); 返回[2,3,4,5] arr = [1];
3、如果start是负数(-1,-2...),从数组最后一个开始截取对应的长度,大于数组的长度返回整个数组


4.数组方法扩展-indexOf

indexOf(param) 在数组中从第一个元素开始查找param,返回第一次出现的下标,如果没有找到返回-1

lastIndexOf(param) 在数组中从最后一个元素开始查找param,返回第一次出现的下标,如果没有找到返回-1

说明:indexOf 和 lastIndexOf 存在兼容性问题,最新版本的浏览器才支持,不建议使用


5.~数组length妙用~!

一起来练习道面试题:
如何快速从1-100中随机取10个不重复的数?(面试题)

var arr = [];
for(var i=1; i<=100; i++){
    arr.push(i);
}
arr.sort(function(){
    return Math.random()-0.5;
});
arr.length = 10;
console.log(arr);

下一个给大家分享字符串0.0

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP