js练习题

1.前世今生:根据用户输入的名字,查找他的前世是谁。

  获取用户输入名字中的姓(字符串截取),从数据库/数组中查找相似的姓,提出名字,从中返回一个随机名字。

  例如数组:

  var arr = ["李世民","荆轲","后羿","刘邦","白起","白浅浅","李元芳","李白","刘备","刘禅","关羽","张飞","妲己","孙悟空","鲁班","安琪拉","刘亚瑟","程咬金","张无忌","张良"];

  当用户输入姓名“张三”,将会从“张飞”、“张无忌”、“张良”中随机返回一个名字。

var name = prompt("请输入姓名");

var firstName = name.slice(0,1);

console.log(firstName);

var newArr = [];

for(var i=0;i<arr.length;i++){

var hero = arr[i];

if(arr[i].slice(0,1)==firstName){

newArr.push(hero);

}

}

var random = Math.random()*newArr.length;

var index = Math.floor(random);

//var index=Math.floor(Math.random()*newArr.length);

console.log(newArr);

console.log(index);

console.log("您的前世是:"+newArr[index]);

alert("您的前世是:"+newArr[index]);

2.封装一个函数,给定一个字符串数组var arr = ["com", "briup.com", "cn", "briup.com.cn", "http://www"],输出最长的字符串元素对应的索引和字符串值。

var _ = require("lodash");

var arr = ["com", "briup.com", "cn", "briup.com.cn", "http://www"];

maxKey=0;

_.forEach(arr,function(value,key){

if(value.length>arr[maxKey].length)

maxKey=key;

});

console.log("最长字符串在数组中的索引:"+maxKey,"字符串的值是:"+arr[maxKey]);

3.封装一个函数,给定一个字符串,输出出现最多次的那个字符和索引。

var str='jbdjwbdwjbbjwebbb';

function fn3(str){

    var len = str.length;

    var obj = {};

    for(var i=0;i<len;i++){

        if(str.charAt(i) in obj){

            obj[str.charAt(i)]++;

        }else{

            obj[str.charAt(i)]=1;

        }

    }

    var num=0;//比较值

    var res='';//结果

    for(var k in obj){

        if(obj[k]>num){

            num = obj[k]

            res = k;

        }

    }

    console.log(res);

}

4.封装一个函数,判断n是否是幸运数字

幸运数:length为偶数,并且前一半的和等于后一半的和。例如:isLucky(1230)=true

function isLucky(n) {

var str = String(n);

var flag = false;

var result1 = 0;

var result2 = 0;

if(str.length%2==0){

for(var i=0;i<str.length;i++){

if(i<str.length/2){

result1 += Number(str.charAt(i));

}else{

result2 += Number(str.charAt(i));

}

}

if(result1==result2){

flag = true;

}

}

return flag;

}

console.log(isLucky(1230));//true

5.封装一个函数,传入时间戳,返回2021-09-09 10:10:10.不借助第三方库。

var strDate = '';

        $(function(){

            // 获取时间戳

            var nowDate = new Date().getTime(); //1564624526889

            // 调用封装好的时间转换方法

            timestampToTime(nowDate);

        }())

        

        function timestampToTime(timestamp) {

            var date = new Date();//时间戳为10位需*1000,时间戳为13位的话不需乘1000

            var Y = date.getFullYear() + '-';

            var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';

            var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' ';

            var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':';

            var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':';

            var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds());

            

            strDate = Y+M+D+h+m+s;

            return strDate;

            

        }

        console.log(strDate) //2019-08-01 09:55:26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值