案例要求

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

业务核心算法:

/*
数字检测
@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. Windows环境下使用uiautomatorviewer进行元素定位

    一.摘要 元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作,uiautomatorviewer 是 android-sdk 自带的一个元 ...

  2. FirstWriting

    在很久很久以前,你拥有我我拥有你 <外面的世界> 在很久很久以前我就有搞一个类似博客的东西的想法,不过一直都没有尝试着搞-- 某天(10号左右吧)刷知乎看到github和hexo可以搭建博 ...

  3. Codeforces Round #588 (Div. 2) D. Marcin and Training Camp(思维)

    链接: https://codeforces.com/contest/1230/problem/D 题意: Marcin is a coach in his university. There are ...

  4. Maven 配置问题 - could not find resource mybatis-config.xml

    需要在pom中加入以下代码 <build> <resources> <resource> <directory>src/main/resources&l ...

  5. 封装Vue组件的一些技巧

    封装Vue组件的一些技巧 本文同步在个人博客shymean.com上,欢迎关注 写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式.以弹窗组件为例,一种实现是在需 ...

  6. Non-standard serial port baud rate setting

    ////combuad_recv.cpp #include <stdio.h> /*标准输入输出定义*/ #include <stdlib.h> /*标准函数库定义*/ #in ...

  7. 北京清北 综合强化班 Day3

    括号序列(bracket) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一个括号序列,但这个序列不一定合法. 一个合法的括号序列如下: ()是合法的 ...

  8. Django基础之初识视图

    编写视图 一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应. 响应可以是一个网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一 ...

  9. [Linux]ubuntu更改国内源

    转自: https://blog.csdn.net/qq_35451572/article/details/79516563 推荐快速更新国内源 https://blog.csdn.net/qq_35 ...

  10. 【java设计模式】-02工厂模式

    工厂模式简述 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客 ...