案例要求

根据业务情况,要把核心的东西变成一个模块便于复用,慢慢沉淀后,能够更快更高效地编程。

业务核心算法:

/*
数字检测
@return
返回2,能被3和7整除
返回1,能够被3整除
返回0,不能被3整除
@author Dev
Written in 2019.9
*/
function checkNum(number){
if(number % 21 == 0) return 2;
else if(number % 3 == 0) return 1;
return 0
}

业务逻辑代码:

/*
@return
返回符合条件的拼接结果,每十个一行;
illegal:
"unexpected number";
begin > end:
"the begin is greater than the end"
*/
function filterNum(begin, end){
var rst = '';
var cnt = 0;
//合法性判断:
if(isNaN(begin) || isNaN(end)) return "unexpected number";
if(begin>end) "the begin is greater than the end";
for(var i = begin ; i <= end; i++){
if(checkNum(i) == 0) continue;
rst += ("<span class='");
// 被3除
if(checkNum(i) == 1) rst += ("three ");
// 被两者除
else rst += ("twt-one ");
rst += ("'>"+ i +"</span>");
cnt ++;
if(cnt % 10 == 0 ) rst += '<br/>';
}
return rst;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="divide.css">
</head>
<body>
<label>请输入开始数字</label>
<input type="text" name="" id="begin">
<label>请输入结束数字</label>
<input type="text" name="" id="end">
<button id="smt">提交</button>
<hr>
<div id="result">
</div>
</body>
<script type="text/javascript" src="base.js"></script>
<script type="text/javascript" src="divide.js"></script>
</html>

divide.html

/* normal style */
span{
display: inline-block;
width: 100px;
text-align: center;
} /* Able to be divisible by three. */
.three{
color: blue;
font-weight: bold;
} /* Able to be divisible by 3 and 7 */
.twt-one{
color: yellow;
background-color: red;
}

divide.css

function $(id){
return document.getElementById(id);
}
function print(log){
console.log(log);
}

base.js

/*
数字检测
@return
返回2,能被3和7整除
返回1,能够被3整除
返回0,不能被3整除
@author Dev
Written in 2019.9
*/
function checkNum(number){
if(number % 21 == 0) return 2;
else if(number % 3 == 0) return 1;
return 0
}
/*
@return
返回符合条件的拼接结果,每十个一行;
number wrapper:
span
illegal:
"unexpected number";
begin > end:
"the begin is greater than the end"
*/
function filterNum(begin, end){
var rst = '';
var cnt = 0;
//合法性判断:
if(isNaN(begin) || isNaN(end)) return "unexpected number";
// 转成数值
begin = Number(begin), end = Number(end);
if(begin > end) return "the begin is greater than the end";
for(var i = begin ; i <= end; i++){
var num = checkNum(i);
if(num == 0) continue;
rst += ("<span class='");
// 被3除
if(num == 1) rst += ("three ");
// 被两者除
else rst += ("twt-one ");
rst += ("'>" + i + "</span>");
cnt ++;
if(cnt % 10 == 0 ) rst += '<br/>';
}
return rst;
}
/*
用户提交数据时触发
获取网页源数据,并在网页显示处理结果
*/
function onSubmit(){
var begin = $('begin').value;
var end = $("end").value;
var rst = $('result');
rst.innerHTML = filterNum(begin,end);
} // 设置点击事件函数
$('smt').onclick = onSubmit;

divide.js

JavaScript(6)—— 返回特征数字的更多相关文章

  1. java基础60 JavaScript字符串转换成数字(网页知识)

    1.字符串转换成数字 <!doctype html> <html> <head> <meta charset="utf-8"> &l ...

  2. asp.net后台操作javascript:confirm返回值

    在asp.net中使用confirm可以分为两种: 1.没有使用ajax,confirm会引起也面刷新 2.使用了ajax,不会刷新 A.没有使用ajax,可以用StringBuilder来完成. ( ...

  3. JavaScript判断是否是数字

    JavaScript判断是否是数字的几种方法 isNaN() /** * 判断是否是数字 */ function isNumber(value){ if(isNaN(value)){ return f ...

  4. JavaScript 关于金额、数字验证的正则表达式

    JavaScript 关于金额.数字验证的正则表达式 function ismoney(money) { var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^ ...

  5. JavaScript关于返回数据类型一个小小的笔记

    Javascript关于返回数据类型的一个小笔记 javascript数据类型有两种. 一种是基本数据类型:String.Number.Boolean.Symbol.Underfine.Null 一种 ...

  6. JavaScript求两个数字之间所有数字的和

    这是在fcc上的中级算法中的第一题,拉出来的原因并不是因为有什么好说的,而是我刚看时以为是求两个数字的和, 很显然错了.我感觉自己的文字理解能力被严重鄙视了- -.故拉出来折腾折腾. 要求: 给你一个 ...

  7. Odometer使用JavaScript和CSS制作数字滑动效果

    Odometer是一个使用JavaScript和CSS技术,制作出数字上下滑动的动画效果插件,有点类似与我们的天然气的读数的动画效果,这个插件是轻量级的,压缩版本只有3kg,使用CSS3动画技术,所以 ...

  8. 使用Javascript实现返回顶部功能。

    为了提高网站的浏览体验及友好度,相信大部分网站需要一个返回顶部的按钮,如果使用传统的a标记,再做一个div加上链接的话,非常麻烦,不仅每个页面都需要添加,而且不能实现非常智能的效果及简化维护时间. 下 ...

  9. 【JavaScript】日期和数字格式化

    var date, number; /** * 让日期和时间按照指定的格式显示的方法 * @param date * @param formatString format 格式字符串 * @retur ...

随机推荐

  1. 【转】golang 结构体和方法

    原文:https://www.jianshu.com/p/b6ae3f85c683 ---------------------------------------------------------- ...

  2. python : import详解。

    用户输入input() input()函数: 用于从标准输入读取数值. >>> message = input('tell me :') tell me :hahah >> ...

  3. Vue入门(一)——环境搭建

    1.参考该教程装vue脚手架和创建工程 https://segmentfault.com/a/1190000008922234 附:在每个工程下cmd,执行npm install,此时工程下会多一个n ...

  4. docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /tmp/tfserving/

    注意要是当前的完整路径 pwd查看到完整路径,再加入到source里面即可

  5. ubuntu 中 搭建 C编程环境

    在 ubuntu 中 使用 快捷键 Ctrl + Alt + T 打开 终端 在终端输入 gcc 查看 有没有安装 gcc (c语言的编译器) ( 我这里是 已经 安装 好的 ) 进行 安装 gcc ...

  6. Qt中PushButton的pressed,released,clicked三种响应的区别

    Qt的PushButton的常用的三种响应有pressed,released和clicked. 优先级:pressed>released>clicked 按下按钮pressed函数的内容, ...

  7. Luogu P1951 收费站_NOI导刊2009提高(2) 二分 最短路

    思路:二分+最短路 提交:1次 题解: 二分最后的答案. $ck()$: 对于每次的答案$md$跑$s,t$的最短路,但是不让$c[u]>md$的点去松弛别的边,即保证最短路不经过这个点.最后$ ...

  8. Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)

    Vue 事件监听实现导航栏吸顶效果(页面滚动后定位) Howie126313 关注 2017.11.19 15:05* 字数 100 阅读 3154评论 0喜欢 0 所说的吸顶效果就是在页面没有滑动之 ...

  9. Laravel Passport API 认证使用小结

    Laravel Passport API 认证使用小结 八月 4, 2017 发布在 Laravel 看到Laravel-China 社区常有人问 Laravel Passport 用于密码验证方式来 ...

  10. 小米oj 重拍数组求最大和

     重排数组求最大和 序号:#34难度:困难时间限制:1000ms内存限制:10M 描述 假设有一个n元素的数组(数组的元素索引从1开始),针对这个数组有q个查询请求,每个请求由一对整数li,ri组成, ...