微语 微语:代码适合中午敲,早晚出BUG

数组的拼接 JavaScript

假如你和寝室的另外3个同学一起出去吃午饭。①用一个数组nameArr表示你们的名字。
②分别吃的是鱼香肉丝、青椒炒肉、红烧牛肉、番茄炒西红柿。用数组foodArr表示你们吃的4种菜。
③分别打印出每个人吃的菜。例如:”张三吃的是鱼香肉丝”。(考点:数组遍历、数组元素访问)

方法一:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            let nameArr = ["鱼香肉丝", "青椒肉丝", "红烧牛肉", "番茄炒鸡蛋"]
            let foodArr = ["张三", "李四", "王二", "盖亚"];
            foodArr.forEach(function(v, i) {
                console.log(`${v}喜欢吃${nameArr[i]}`)
            })
        </script>
    </body>
</html>

方法二:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            let nameArr = ["鱼香肉丝", "青椒肉丝", "红烧牛肉", "番茄炒鸡蛋"]
            let foodArr = ["张三", "李四", "王二", "盖亚"];
            for (i = 0; i < nameArr.length; i++) {
                console.log(`${foodArr[i]}吃${nameArr[i]}`)
            }
        </script>
    </body>
</html>

定义一个数组,包含9个任意的整数,求该数组中奇数的个数 JavaScript

方法一:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
            let sum = 0;
            let j = 0;
            for (i = 0; i < arr.length; i++) {
                if (arr[i] % 2 == 0) {
                    sum = sum + 1;
                } else {
                    j = j + 1
                }
            }

            console.log(`偶数有: ${sum}个`)
            console.log(`奇数有: ${j}个`)
        </script>
    </body>
</html>

方法二:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            // 拓展题:定义一个数组,包含9个任意的整数,求该数组中奇数的个数,要求使用forEach方法。(考点:定义数组、forEach遍历数组、判断奇偶)
            let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
            let sum = 0;
            let j = 0;
            arr.forEach(function(v,i) {
                if (v % 2 == 0) {
                    sum = sum + 1;
                } else {
                    j = j + 1;
                }
            })

            console.log(`偶数有: ${sum}个`)
            console.log(`奇数有: ${j}个`)
        </script>
    </body>
</html>

判断本月休息天数 JavaScript

假如本月有30天,第1天开始上课。严格按照上2天自习一天,上2天休息一天的作息来执行。请使用数组month保存30个元素,rest保存休息的天数,study保存自习的天数,得出这个月总共休息多少天,自习多少天

判断本月休息天数

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            let month = []; //定义一个空数组
            let rest = 0; //休息
            let study = 0; //自习
            let sk = 0
            for (var i = 1; i <= 30; i++) {
                month.push(i); //利用for循环吧1-30传入给数组
                if (month.length % 3 == 0 && month.length % 2 != 0) {

                    rest = rest + 1; //休息天数
                    console.log(`${month.length}号休息`)

                } else if (month.length % 6 == 0) {
                    study = study + 1; //自习天数
                    console.log(`${month.length}号【自习】`)
                } else {
                    sk = sk + 1; //上课天数
                }
            }

            console.log("日历:", month)
            month.join('号')
            console.log(`累计休息${rest}天`)
            console.log(`累计自习${study}天`)
            console.log(`正常上课${sk}天`)
        </script>
    </body>
</html>

Js给空数组生成1-n的值 JavaScript

方法一:循环赋值

var arr = new Array(100);
for(var i=0;i<arr1.length;i++){
arr1[i] = i;
}

方法二:push方法实现

var arr = new Array();
for(var i=0;i<100;i++){
 arr.push(i);
}

方法三:while

var arr = new Array();
var i = 0;
while(i<100){
arr.push(i);
i++;
}

方法四:do while

var arr = new Array();
var i = 0;
do{
arr.push(i);
i++;
}
while(i<100)

方法五:Object.keys

var arr = Object.keys(Array.apply(null, {length:100})).map(function(item){
return +item;
});

方法六:Array.from

var arr = Array.from({length:100}, (v,k) => k);

方法七:Array.from

var arr = Array.from(Array(100), (v,k) =>k);

方法八:new Array

var arr = new Array(100).keys();

方法九:setInterval

var arr = [];
var i = 0;
var timer = setInterval(function(){
 arr[i] = ++i;
 if(i>=100){
  clearInterval(timer);
 }
},1);

方法十:递归

var arr = [];
var i = 0;
function MakeArray(num){
if(i<num){
arr[i] = i++;
 MakeArray(num);
 }
 return arr;
}

方法十一:map

var arr = new Array(100).toString().split(',').map(function(item,index){
 return index;
});

求数组中最大值 JavaScript

方法一:

arr = [1, 3, 5, 79, 11];
            let max = arr[0];
            arr.forEach(function(v, i) {
                if (v > max) {
                    max = v;
                }
            })
console.log("最大值:", max)

方法二:

arr = [1, 3, 5, 79, 11]
            let max = arr[0];
            for (let i = 0; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i]
                }
            }
            console.log("最大值", max)

商品计算 JavaScript

张大头开了一个超市,平时所有商品在进货价的基础上,提价40%销售,到国庆节这天要做全场活动,在平时售价的基础上全场打8折。
请编写函数计算所有商品的打折价。
如:洗衣粉进货价 3.7元,法式小面包进货价6.2元,苹果进货价 2.66元。(考点:函数定义、函数调用、参数传递、返回值)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
<script>
            function money(name, a) {
                let result = [a + (a * 0.4)] * 0.8
                console.log(`[${name}]价格:${result}元`);
                return result;
            }
            money("洗衣服", 3.7);
            money("法式小面包", 6.2);
            money("苹果", 2.66);
        </script>

    </body>
</html>

函数封装计算商品价格 JavaScript

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- 场景:编写一个函数返回商品总价。情况一:小红购买了5双袜子,每双1.8元,运费3元,她有张2元的优惠卷。
        情况二:小刘购买了3盒牙膏,每盒25元,商家包邮,没有优惠卷。(考点:函数的定义、函数调用、参数默认值、编程思维) -->

        <script>
            function CalTotal(name, num, price, reight = 0, coupon = 0) {
                /*name=商品名称
                num=商品数量
                prince=商品价格
                reight=运费
                coupon=优惠券*/
                let result = num * price + reight - coupon
                return `${name}商品价格:${result}元`;
            }
            console.log(CalTotal("袜子", 5, 1.8, 3, 2));
            console.log(CalTotal("牙膏", 3, 25));
        </script>
    </body>
</html>

JS三目运算比大小 JavaScript

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            function getThreeMax(x, y, z) {
                return x > y ? (x > z ? x : z) : (y > z ? y : z);
            }
            max = getThreeMax(8, 0, 1)
            console.log("最大值:", max);
        </script>
    </body>
</html>