Javascript-day07-每日微醺案例06-10

六:打印九九乘法表

  • 需求驱动开发
  • 建议一个复杂的效果:先完成一个简单的功能,再根据效果进行代码的完善
// 打多行
// 第一行: j = 1   i:1
// 第二行: j = 2   i:1,2
// 第三行: j = 3   i:1,2,3
for (let j = 1; j <= 9; j++) {
    // 先打印一行
    for (let i = 1; i <= j; i++) {
        document.write(`<span>${i} * ${j} = ${i * j}</span>`)
    }

    document.write('<br>')
}

`

七:数组-求和,最大值和最小值

  • 凡是要获取数组的每一个元素,都是循环遍历
  • 数组的遍历,在现阶段如果没有特别意外,都是使用for循环
  • 函数返回多个值的时候,要将值包装为对象

将代码封装为一个函数

  • 函数的声明定义
  • 函数的参数传递
  • 函数的返回值

获取最大,最小,和:我们需要获取数组的每一个元素,进行相应的操作

// 封装函数,求数组和的和,最大值,最小值
// arr:数组,调用方法需要传入数组
function getValue(arr) {
    let sum = 0,
        max = arr[0], // 不能直接赋值为0,我们压根不知道数组中是什么值(全部是负数怎么办)
        min = arr[0] // 不能直接赋值为0,我们压根不知道数组中是什么值(全部是正数怎么办)
    // 循环遍历数组
    for (let i = 1; i < arr.length; i++) {
        // 求和
        sum += arr[i]
        // 求最大值:如果遍历的元素大于max,说明max需要被覆盖
        if (arr[i] > max) {
            max = arr[i]
        }
        // 求最小值:如果遍历的元素小于min,说明min需要被覆盖
        if (arr[i] < min) {
            min = arr[i]
        }
    }
    // 方法只是进行操作,而不能对操作结果进行处理
    // 如果在函数中使用reutrn直接返回多个值,最终只有最后一个值
    //return只能返回一个变量,所以我们一般对多个进行包装,如果没有特别意外,都包装为对象
    return { sum, max, min }
    // return { 'sum':sum, 'max':max, 'min':min }
}

let result = getValue([12, 3, 2134, 23, 543, 6, 54, 6756])
console.log(result)

`

八:动态生成柱子

  • 要动态,先静态
  • 凡是说到动态渲染,必须要准备好 数据 + 静态结构
  • 现阶段的动态渲染的实现过程就是:遍历拼接

接收用户的输入数据---多个值,定义数组进行存储
遍历数组,根据数组元素值动态拼接指定的html结构
细节:不要忘记了父容器

// 柱子的数量,柱子的数量对应于需要接收的用户输入的值的数量
let num = 4
// 定义一个数组用于存储用户数据--数组命名:要么单词本身是一个复数或本身表示数组,要么你自己添加s/es
// arr  list children  items names
let datas = []
// 循环遍历为数组添加元素
for (let i = 0; i < num; i++) {
    // push / unshift / 数组[索引] = 值
    // datas.push(+prompt())
    datas[i] = +prompt(`请输入第${i + 1}个值`)
}
// 实现动态渲染:数据 + 结构 --实现的过程就是 遍历拼接
// 遍历谁:datas
// 拼接什么:
let htmlStr = `<div class="box">`
for (let i = 0; i < datas.length; i++) {
    htmlStr += ` <div class="sub" style='height:${datas[i]}px'>
                    <span>${datas[i]}</span>
                    <p>第${i + 1}季度</p>
                 </div>`
}
htmlStr += '</div>'

document.write(htmlStr)

`

九:猜数字游戏

  • 回顾api,阶段总结
  • 学会拆分业务中的需求

1.得自动的生成一个1-10 之间的数字

2.添加while循环
让用户输入数字,进行比较

  • 如果大了,就提示大了 --继续输入
  • 如果小了,就提示小了 --继续输入
  • 如果猜 对了,给出提示 -- 不再继续 break
// 1.生成一个1-10之间的随机数字
// Math.random():生成0-1之间的小数,包含0不包含1
let num = Math.ceil(Math.random() * 10)
// 让用户循环--重复输入-重复次数不确定,就用for
for (;;) {
    let guess = prompt('请输入你猜测的数字')
    // - 如果大了,就提示大了 --继续输入
    if (guess > num) {
        alert('输入大了,继续!!!')
    }
    // - 如果小了,就提示小了 --继续输入
    else if (guess < num) {
        alert('输入小了,继续!!!')
    }
    // - 如果猜 对了,给出提示 -- 不再继续 break
    else {
        alert('棒')
        break
    }
}

`

十:删除数组中所有的偶数

自己模拟一个数组

遍历数组,实现元素的删除

// 删除数组中所有的偶数
let arr = [12, 456, 234, 4, 34, 6, 8, 10, 878]

// 遍历,删除splice(索引,数量)
for (let i = 0; i < arr.length; i++) {
    if (arr[i] % 2 == 0) {
        arr.splice(i, 1)
        i--
    }
}
console.log(arr)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:动态生成商品信息 以后凡是根据数据生成动态结构,都遵守一个原则: 要动态,先静态 我们需接收用户从键盘输入的...
    Web_小pang阅读 148评论 0 1
  • # JavaScript基础第01天 ## 1 - 编程语言 ### 1.1 编程 -编程: -就是让计算机为解...
    私心呢阅读 256评论 0 0
  • 原型(prototype) - 创建一个函数以后,解析器都会默认在函数中添加一个数prototype protot...
    Johansong阅读 245评论 0 2
  • js复习 js阶段的主要内容有:1.变量的定义和使用2.循环结构:for forEach map filter3....
    sheepl阅读 177评论 0 2
  • js复习 js阶段的主要内容有:1.变量的定义和使用2.循环结构:for forEach map filter3....
    y_1c4b阅读 128评论 0 0