JavaScript函数开关思想

281 阅读1分钟

应用场景:可以用来判断数组中是否所有元素满足条件

主要分为三个流程:

1.声明一个变量开关(一般默认值为true)

2.遍历数组,判断数组中的每一个元素是否满足条件,

如果条件不满足,则修改属性值为false;

如果条件满足,则无需修改属性值.因为默认值就是true

3.返回开关变量值

案例一:

需求:判断数组是不是所有元素都是正数, 是则返回true 否则返回false

//声明一个函数
function isAllPositive(arr) {//给函数传参,参数为数组
  //声明一个变量
  let bol = true
  //遍历数组
  for (let i = 0; i < arr.length; i++) {
    /*判断数组里面每一个元素是否满足正数,不满足的话,变量为false*/
    if (arr[i] < 0) {
      bol = false
      break//如果已经找到满足条件的10,则添加break,后面的代码不需要执行,可以提高性能
     }
   }
   return bol//返回变量值
}

案例二:

需求:找出数组中 元素为10的下标,有则返回该下标,没有则返回-1

//声明一个函数
function num10(arr) {
   //声明一个变量
   let num = -1
   let newArr = []
   //遍历数组
   for (let i = 0; i < arr.length; i++) {
   //判断元素中是否有10
       if ( arr[i] === 10 ) {
           num = i
           newArr.push(i) 
       } 
    }
    //返回变量值
    return num > -1 ? newArr : -1
  }
      //调用函数
  let res = num10([1,3,2,10,4,10])
  console.log(res)
  let res1 = num10([1,20,2,3,4])
  console.log(res1)

案例三:

需求:请封装一个获取随机颜色的函数

要求:该函数接收一个布尔类型参数,表示颜色的格式是十六进制还是rgb格式。

 (16进制颜色格式为:  ‘#ffffff’   其中f可以是任意 0-f之间的字符)

 (rgb颜色格式为:  ‘rgb(255,255,255) ’  其中255可以是任意0-255之间的数字)

//声明函数
function getRandomColor(bol){
   let str = '#'
   let newArr = ['1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
   //数组下标0-15 数组的随机下标固定语法: paseInt( Math.random() * 数组长度)
   for(let i = 0;i < 6; i++){
     //生成一个0-16的随机数
     //转换16进制
     str +=  parseInt( Math.random() * 16).toString(16)
    }
    //生成一个随机数
    let r = parseInt( Math.random() * 256)
    let g = parseInt( Math.random() * 256)
    let b = parseInt( Math.random() * 256)
    return bol ? str : `rgb(${r},${g},${b})`
}
console.log(getRandomColor(true))
console.log(getRandomColor(false))