Javascript-day08-每日微醺案例11-15

十一:filter方法的使用

  • 两个重点使用场景: 查询 删除
// 删除数组中所有的偶数
let arr = [12, 457, 44, 5, 12, 9, 8, 11, 68]

// 删除偶数的本质  是  保留奇数
// filter方法会返回一个新数组
// filter(回调函数)
// filter(function(元素值,索引){})
// let temp = arr.filter(function(v) {
//   return v % 2 != 0
// })

// 建议:如果是遍历数据:两个参数名称一般就是value index
// 如果是遍历元素,两个参数的名称一般就是ele index

// 它会从头到尾遍历指定的数组(用那个数组调用这个方法,就会遍历这个数组)
// 每次遍历给回调函数传入当前遍历到的数组元素
// 执行回调函数,如果回调函数的返回结果为true,就将当前遍历到的元素存储到filter内部所创建的数组中
// 最终将内部数组返回
let temp = arr.filter(function(value, index) {
    return value % 2 != 0
})
console.log(temp)

`

十二:数组-forEach-动态拼接html

  • 要动态,先静态
  • 凡是说到动态渲染,必须准备好 数据和结构
  • 动态渲染的实现过程: 遍历 + 拼接
// forEach的作用:单纯的遍历
// 语法:arr.forEach(function(value,index){})
// 从头到尾遍历指定的数组,每次遍历给回调函数传入一个参数,调用回调函数
<!-- 引入数据文件,引入之后,当前页面就可以使用data.js文件中定义的数据了
    引入一个文件,相当于在当前页面中也有引入的js的文件的代码 -->
    <script src="./data/data.js"></script>
    <script>
      let str = `<div class="box w">
                  <div class="box-hd">
                    <h3>精品推荐</h3>
                    <a href="#">查看全部</a>
                  </div>
                  <div class="box-bd">
                    <ul class="clearfix">`
      //  遍历拼接
      data.forEach(function(value, index) {
        str += `<li>
                  <img src="${value.src}" alt="" />
                  <h4>
                    ${value.title}
                  </h4>
                  <div class="info">
                    <span>高级</span> • <span>${value.num}</span>人在学习
                  </div>
                </li>`
      })
      str += `</ul>
            </div>
          </div>`

      document.write(str)
    </script>

`

十三:1~100中前4个能被7整除的数

一:1~100 >> for循环遍历

二:前4个

  • 定义一个数组,每当有数据满足的时候,将值添加到数组,判断数组的长度是否到4,如果到4就break
  • 定义一个计数器,每当有数据满足的时候,+1,判断是否到4

三:能被7整除 >> 值 % 7 == 0

// let arr = []
let count = 0
// 1~100中前4个能被7整除的数
for (let i = 1; i <= 100; i++) {
    if (i % 7 == 0) {
        // arr.push(i)
        console.log(i)
        count++
        if (count == 4) {
            break
        }
        // if(arr.length == 4){
        //   break
        // }
    }
}

`

十四:随机生成16进制的颜色

16进制:0 1 2 3 4 5 6 7 8 9 A B C D E F

16进制颜色的组成:# + 6位16进制的值

需求:

  • 随机获取6位16进制的值,组成一个颜色
  • 使用一个数组来存储所有的16进制的值
  • 随机生成一个合理的索引,通过索引取出一个
  • 我们需要生成6个值,所以需要使用循环,每次循环获取一个值,6次循环获取6个值,拼接在一起生成一个颜色值

实现步骤

  • 定义一个数组
  • 添加一个for循环,在循环中
    • 生成随机数,获取一个颜色值
    • 拼接到一个字符串中

要求:将操作封装为一个函数

// 封装一个函数随机生成16进制的颜色,格式为#******
function getColor() {
    // 定义16进制的颜色值
    let colors = [
        '0',
        '1',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        'A',
        'B',
        'C',
        'D',
        'E',
        'F'
    ]

    let str = '#'
    // 添加一个循环
    for (let i = 0; i < 6; i++) {
        // 生成一个随机数
        let index = parseInt(Math.random() * colors.length)
        // 通过索引获取数组中的某个值,进行拼接
        str += colors[index]
    }
    // 将生成的颜色值返回
    return str
}

document.querySelector('p').style.color = getColor()

`

十五:降序排序

一:随机10个10-110之间的整数存入数组, 并且降序排列

  • 随机生成指定范围内的值:
  • 随机生成数据存储到数组
  • 降序排序

二:实现排序

  • 使用循环遍历出数组的每一个元素,进行前后(i > i+1)比较
  • 如果大小关系满足需要,就应该交换两个数的值
let nums = []
for (let i = 0; i < 10; i++) {
    let num = parseInt(Math.random() * 101) + 10
    nums.push(num)
}
console.log(nums)
// 对数组进行排序操作

// 比较多轮
let count = 0
for (let j = 0; j < nums.length - 1; j++) {
    // 比较一轮,只能获取一个最大值放到后面
    for (let i = 0; i < nums.length - 1 - j; i++) {
        count++
        if (nums[i] < nums[i + 1]) {
            // 交换两个数的值
            let temp = nums[i]
            nums[i] = nums[i + 1]
            nums[i + 1] = temp
        }
    }
}
console.log(nums)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • 一:动态生成商品信息 以后凡是根据数据生成动态结构,都遵守一个原则: 要动态,先静态 我们需接收用户从键盘输入的...
    Web_小pang阅读 131评论 0 1
  • 六:打印九九乘法表 需求驱动开发 建议一个复杂的效果:先完成一个简单的功能,再根据效果进行代码的完善 ` 七:数组...
    sheepl阅读 146评论 0 3
  • # JavaScript基础第01天 ## 1 - 编程语言 ### 1.1 编程 -编程: -就是让计算机为解...
    私心呢阅读 226评论 0 0
  • js复习 js阶段的主要内容有:1.变量的定义和使用2.循环结构:for forEach map filter3....
    sheepl阅读 166评论 0 2
  • 1 - 编程语言 1.1 编程 编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果...
    Scincyc阅读 273评论 0 0