600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > JavaScript高级程序设计读书笔记(第5章引用类型之Array类型)

JavaScript高级程序设计读书笔记(第5章引用类型之Array类型)

时间:2020-10-16 04:00:13

相关推荐

JavaScript高级程序设计读书笔记(第5章引用类型之Array类型)

为什么80%的码农都做不了架构师?>>>

1.数组长度

//lenth会自动更新var arr=["black","red","green"];console.log(arr);//["black", "red", "green"]arr[99]="white";console.log(arr);//["black", "red", "green", 99: "white"]console.log(arr.length);//100

2.判断是否是数组(3种方法)

//typeof一般检测基本数据类型的值,instanceof检测引用类型的值var arr=["black","red","green"];console.log(typeof (arr));//objectconsole.log(arr instanceof Array);//true//instanceof只适用于单一的全局执行环境

//isArray()不在意数组是在哪个全局执行环境中创建的,但IE9+才支持var arr=["black","red","green"];console.log(Array.isArray(arr));//true

//IE9以下var arr=["black","red","green"];var isArray=Object.prototype.toString.call(arr);console.log(isArray);//[object Array]console.log(isArray == "[object Array]");//true

3.数组转换为字符串(2种方法)

//toString()var arr=["black","red","green"];console.log(arr.toString());//black,red,green

//join()var arr=["black","red","green"];console.log(arr.join(","));//black,red,green

4.栈方法和队列方法

//栈方法 push()、pop()var arr=["black","red","green"];arr.push("yellow");console.log(arr); //["black", "red", "green", "yellow"] var item=arr.pop(); // 删除最后一项console.log(item); // 后进先出,yellowconsole.log(arr); //["black", "red", "green"]

//队列 push()、shift() 先进后出//unshift()、pop()反向模拟队列,数组前端添加(unshift())项、数组末端删除(pop())项。

5.reverse()反转数组

var arr=["black","red","green"];console.log(arr.reverse());//["green", "red", "black"]

6.sort()方法排序

//sort()方法比较的是字符串var arr=[1,12,5,20,3];console.log(arr.sort());//[1, 12, 20, 3, 5]

//sort()正确的调用方式var arr=[1,12,5,20,3];function compare(value1,value2){if(value1>value2) {return 1;}else if(value1<value2) {return -1;}else {return 0;}}console.log(arr.sort(compare));//[1, 3, 5, 12, 20]

//更精简版本var arr=[1,12,5,20,3];function s(arr){return arr.sort(function(a, b){return a - b;});}console.log(s(arr));//[1, 3, 5, 12, 20]

7.concat()方法,连接两个或多个数组

var arr1=[1,2,3,4];var arr2=["a","b","c"];arr1=arr1.concat(arr2);console.log(arr1);//[1, 2, 3, 4, "a", "b", "c"]

8.splice()方法,删、增、替换数组中的项

//splice()删除数组中的某些项//arr.splice(startLocation,itemNum); //startLocation:要删除的第一项的位置,itemNum:要删除的项数var arr=["a","b","c","d","e"];var deleteData=arr.splice(0,2);//删除了前2个元素console.log(deleteData);//删除了的元素:["a", "b"] console.log(arr);//["c", "d", "e"]

//splice()增加数组中的某些项//arr.splice(insertLocation,deleteIndex,"item","item2","...");//insertLocation:起始位置,deleteIndex要删除的元素,设为0,item:要插入的元素var arr=["a","b","c","d","e"];deleteData=arr.splice(1,0,"f","g");//在arr[1](b)位置开始插入"f","g",不删除任何一个元素console.log(deleteData);//[]因为未删除任何元素console.log(arr);//["a", "f", "g", "b", "c", "d", "e"]

//splice()增加数组中的某些项var arr=["a","b","c","d","e"];deleteData=arr.splice(1,1,"f");//将b替换为fconsole.log(deleteData);//["b"] console.log(arr);//["a", "f", "c", "d", "e"]

9.迭代方法:every(),filter(),forEach(),map(),some()

//every()var numbers=[1,2,3,4,5,6,7,8,9,0];var everyResult=numbers.every(function(item,index,array){return item > 0;//every(),每一项为true,才返回true});console.log(everyResult);//false

//some()var someResult=numbers.some(function(item,index,array){return item > 0;//some(),任何一项为true,就返回true});console.log(someResult);//true

//filter()var filterResult=numbers.filter(function(item,index,array){return item > 0;//filter(),返回为true的数组});console.log(filterResult);//[1, 2, 3, 4, 5, 6, 7, 8, 9]

//map()var mapResult=numbers.map(function(item,index,array){return item*2;//map(),返回调用结果组成的数组});console.log(mapResult);//[2, 4, 6, 8, 10, 12, 14, 16, 18, 0]

//forEach()numbers.forEach(function(item,index,array){item=item*2;//forEach(),类似for循环console.log(item);});

10.缩小方法,reduce()和reduceRight()

//reduce():迭代数组中的所有项,然后构建一个最终返回的值//reduceRight():作用同上,但是reduceRight()从数组尾部开始进行var values=[1,2,3,4,5];var reduceResult=values.reduce(function(pre,cur,index,array){return pre+cur;});console.log(reduceResult);//15

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。