js05 递归+数组

//递归:函数自己调用自己,要有临界点(结束条件)

//递归的使用场景:

1.快速排序使用递归

2.对象的深拷贝,也可以使用递归

3.二级、多级菜单

4.nodejs对文件的便利

//递归能做什么:

循环能做的事情,递归都能实现;但是递归的性能比循环要弱

递归就是代码重复使用

1.什么是数组:在js里的数组,就是一组任意类型的数据,可以动态的扩容

2.数组的创建方式:

//数组的字面量表达式(推荐)

var arr=[ ];

//构造函数创建数组

var arr=new Array();

//var arr=Array();

3.数组的类型

var arr=[ ];

console.log(typeof((arr)));----object

4.如何判断是否为数组 Array. isArray( ) var str = "abc12"; console. log( Array. isArray(str));//false console.log( Array. isArray([]));//true

5.数组的初始化

var names=[“张三”,“李四”,“王五”];声明数组,并且赋予初始值

6.数组length属性

1.length表示数组的长度,长度被修改,也可取值

var arr =[]; arr.length = 10 console. log(arr); console. log(arr .length);

2.修改数组的长度,会影响数组里的成员 //数组长度修改后,会丢失数组里的成员 var names = ["张三"," 李四"J "王五"]; names.length = 1 console. log(names);“张三” names.length = 3 console. log(names);长度3,“张三”

7.数组的方法

1)push()往数组的最后位置添加成员,返回数组新长度

var arr = [11,"你好", true]; console.1og(arr. push("刘德华","周杰伦")); console.log(arr);

2)pop()删除数组最后位置的成员,返回被删除的元素 var arr = [11,"你好", true]; console.1og(arr.pop()); console.log(arr);

3)shift()删除数组的第一位,返回数组被删除的元素

4)unshift()往数组第一位添加成员,返回数组新长度

FIFO先进先出

push+pop或者unshift+shift

LIFO后进先出

push+shift或者unshift+pop

5)sort()排序

//如果数组成员大于10,sort排序就会失效-----数组的sort方法,是根据ASCII码,进行排序-----就需要在sort方法里加入一个回调函数----回调函数 a-b升序,b-a降序

6)reverse ()倒叙

7)splice()

a:删除;删除返回一个新数组,包裹被删除的元素

var arr=[11,22,33,44,55]

console.log(arr.splice(3,1))

console.log(arr)

b:替换

var arr=[11,22,33,44,55]

arr.splice(3,2,"sisi")

console.log(arr)

c:插入

var arr=[11,22,33,44,55]

arr.splice(3,0,"AA")

console.log(arr)

8)slice()截取,不会改变原来的数组

//也可以实现数组的拷贝 ---------slice(0)

var arr=[11,22,33,44,55]

console.log(arr.slice(2,4))

9)concat()

a:合并数组的成员,返回一个新数组

var arr1=[11,22,33]

var arr2=['aa','bb','cc']

var arr3=arr1.concat(arr2,true)

console.log(arr3)

b:数组的浅拷贝(复制)

var arr1=[11,22,33]

var arr2=[].concat(arr1)

arr2[0]="AA"

console.log(arr2)

console.log(arr1)

c:使用slice(0)实现数组的浅拷贝(复制)

var arr = [11, 22,33, 44, 55]; var arr1 = arr.slice(0) console.log(arr1[0] = "AA"); console.log(arr1); console.log(arr);

10)join()默认是以“,”隔开,也可以指定格式,它返回的是字符串

会改变原来数组的:

push(), pop(), shift(), unshift(), sort(), reverse(), splice()

不会改变原来的数组:

slice(),concat(),join()

数组的下标,从0开始

通过下标,进行取值和复制

for...in和for循环遍历数组有什么区别?

for...in的key是字符串

for根据length的值决定遍历的次数

for...in根据内容,决定遍历的次数

posted @ 2022-03-24 20:08  yaoooooooooo  阅读(428)  评论(0)    收藏  举报