前端算法学习-前篇

2020-05-20  本文已影响0人  沉默紀哖呮肯伱酔

递归

JavaScript中允许函数递归调用,示例:

      function factorial(n){
          if( n === 1){
            return 1
          }else{
            return n*factorial(n-1)
          }
      }
    
    console.log(factorial(6))

当一个函数呗递归调用时,递归没有完成,函数的计算结果会被暂时挂起,
上例的执行过程如下:

6 * factoial(5)
6 * 5 * factoial(4)
6 * 5 * 4 * factoial(3)
6 * 5 * 4 * 3 * factoial(2)
6 * 5 * 4 * 3 * 2 * factoial(1)

数组

定义:一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字。
数组的第一项下标是0
创建一个数组

let array = []

该数组的长度为0,

array.length // 0

也可以通过调用构造函数来创建数组

let array1 = new Array()

数组的读写

可以使用[]操作符将数据赋值给数组,将1~100的数字赋给一个数组 示例如下:

let num = []
for(let i = 0;i<100;i++){
  num[i] = i +1
}

可以读取数组中的元素

let num = [1,2,3,4,5,6,7]
console.log(num[4]) // 5

数组的常用方法:

// indexOf()
let names = ["zhangsan","lisi"]
console.log(names.indexOf("zhangsan")) // 0
console.log(names.indexOf("wangwu")) // -1
let names = ["zhangsan","lisi"]
let str1 = names.join()
console.log(str1) // zhangsan,lisi
let str2 = names.toString()
console.log(str2) // zhangsan,lisi
// 两个方法不同的是 join()方法可以传递参数,参数的意义是使用该参数链接数组的各个元素
let str3 = names.join("-")
console.log(str3) // zhangsan-lisi
let arr1 = [1,2,3]
let arr2 = [4,5,6]
let arr3 = [7,8]
let newArr = arr1.concat(arr2,arr3)
console.log(newArr) // [1,2,3,4,5,6,7,8]
let arr = [1,2,3,4,5,6,7,8]
let arr1 = arr.splice(2,3)
console.log(arr1) // [3,4,5]
console.log(arr) // [1,2,6,7,8]
let arr = [1,2,3]
arr.push(4)
console.log(arr) // [1,2,3,4]
let arr = [1,2,3]
arr.unshift(4)
console.log(arr) // [4,1,2,3]
let arr = [1,2,3]
arr.pop()
console.log(arr) // [1,2]
let arr = [1,2,3]
arr.reverse()
console.log(arr) // [3,2,1]
let arr = [1,2,8,4,5,7,89,32,5]
arr.sort((a,b)=> a-b)
console.log(arr) // [1, 2, 4, 5, 5, 7, 8, 32, 89]
let arr =  [1, 2, 4, 5, 5, 7, 8, 32, 89]
arr.forEach((item)=>{
  console.log(item)
})
// 打印数组的每一项
let arr =  [1, 2, 4, 5, 5, 7, 8, 32, 89]
let result = arr.every((item)=>{
    return  item > 0
})
console.log(result) // true
let arr =  [1, 2, 4, 5, 5, 7, 8, 32, 89]
let result = arr.every((item)=>{
    return  item > 5
})
console.log(result) // true
let arr =  [1, 2, 4, 5, 5, 7, 8, 32, 89]
const result = arr.reduce((pre,next) =>pre+next,0)
console.log(result) // 153
let arr =  [1, 2, 4, 5, 5, 7, 8, 32, 89]
let arrNew = arr.filter((item)=>item > 5)
console.log(arrNew) // [7, 8, 32, 89]
上一篇 下一篇

猜你喜欢

热点阅读