数据可视化(BI报表的开发)第四天

练习题:

先找出字符串 ‘8587263747153203552943982’ 中出现次数最多的数字及次数,然后去重后并排序(不准使用sort),使得到结果为 ‘0123456789’。

要求1:找到出现最多的数字和出现的次数

// 1、找出出现次数最多的数字,出现了几次// 思路:{数字:次数}{8:2,5:2,7:1},把数字当做对象键,值统计累加// 定义了一个空对象,往里面保存内容var obj = {};// 遍历:可以和数组一毛一样for (var i = 0; i < str.length; i++) {// str[i]:吧这个当做对象的属性名// 如果obj对象有了这个属性,那么就让其值加加,// 如果没有这个属性,就给obj这个对象添加上这个属性,并且值是1if (obj[str[i]]) {obj[str[i]]++;} else {obj[str[i]] = 1;}}console.log( obj );// 现在obj对象已经吧字符统计出来了var max = 0;// max就是假设值最大值(最多次数)var num = 0;// 出现最多次数的数字// 遍历对象for (key in obj) {// obj = {2 :3}if (max < obj[key]) {max = obj[key];// 最多次数num = key;}}// console.log( '出现最多的是' + num + '次数是' + max );for (key in obj) {if (obj[key] == max) {console.log(key);}}

要求2:去除字符串中重复的数字

要求3:对去重后的字符串排序

var str = '8587263747153203552943982';// 2、吧字符串重复的去除// console.log( str.indexOf('a') );// 查找首次出现的索引位置,如果找到返回索引值,找不到返回-1var newStr = '';// 思路:把str每个字符遍历出来,遍历出来之后在newStr里面去查找有木有,// 如果木有我们就给newStr连接上这个新的字符就可以for (var i = 0; i < str.length; i++) {// 如果newStr里面没有str[i],就给newStr连接上这个新的即可if ( newStr.indexOf(str[i]) == -1 ) {newStr = newStr + str[i];}}console.log( newStr );// 3、去除重复的字符之后,排序var arr = newStr.split('');// console.log(arr);for (var i = 0; i < arr.length; i++) {for (var j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j+1]) {var temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}console.log( arr.join('') );

核心知识点

  • touch事件(touchstart、touchmove、touchend)
  • touchEvent 事件对象
  • transitionend事件

1. touch事件类型

移动设备上无法使用鼠标,当手指触碰屏幕时会触发 click、mousedown、mouseup 事件。

但是,touch事件要比鼠标事件执行效率高,用户体验好。

注意:以下事件必须通过事件监听注册

事件添加:

​ 元素.onclick = function () {}

​ 元素.addEventlistener(‘click’,function (){});

  • touchstart,手指按下事件
  • touchmove,手指移动事件
  • touchend,手指松开事件
	// 手指按下document.addEventListener('touchstart', function () {console.log('手指按下');});// 手指移动document.addEventListener('touchmove', function () {console.log('手指移动');});// 手指抬起document.addEventListener('touchend', function () {console.log('手指抬起');});

```js
<script type="text/javascript">// touch事件对象document.addEventListener('touchstart', function (e) {// console.log( e );// 屏幕手指列表console.log( e.touches[0] );// 元素上的手指列表console.log( e.targetTouches[0] );// 改变的手指列表console.log( e.changedTouches[0] );});// touchenddocument.addEventListener('touchend', function (e) {// 屏幕手指列表console.log( e.touches[0] );// 元素上的手指列表console.log( e.targetTouches[0] );// 改变的手指列表console.log( e.changedTouches[0] );});</script>
## 2. touch事件对象+ 常见的属性> 1. 事件对象.touches :位于屏幕上的所有手指的列表;> 2. 事件对象.targetTouches :位于该元素上的所有手指的列表;> 3. 事件对象.changedTouches:被改变的手指列表。  touchstart时包含刚与触摸屏接触的触点,touchend时包含离开触摸屏的触点>> touches和targetTouches必须是在屏幕上,而changedTouches可以获取离开屏幕的手指的>+ 手指的位置> 1. 手指对象.clientX/Y 手指相对于可视区域> 2. 手指对象.pageX/Y 手指相对于文档>> **注意:手指对象.clientX/Y 使用较多** 

document.addEventListener(‘touchstart’, function (e) {
// 打印手指位置
// 手指对象
console.log( e.touches[0].clientX, e.touches[0].clientY );
console.log( e.touches[0].pageX, e.touches[0].pageY );
});


## 3.常见的手势> ​	注意:以下手势的实现是在touch事件基础上。我们不需要自己实现以下所有手势,有专门的第三方可以直接拿来使用。
>
> ​	以下手势仅仅是了解。

在这里插入图片描述

案例:

模拟tap手势(点击)

// 两个事件:手指按下,手指松开
// 如果是点击:手指按下的x和y位置,和手指松开的x和y位置是相同
// 手指按下
var startx,starty;
document.addEventListener(‘touchstart’, function (e) {
// 获取x和y
startx = e.touches[0].clientX;
starty = e.touches[0].clientY;
});

	// 手指松开document.addEventListener('touchend', function (e) {var endx = e.changedTouches[0].clientX;var endy = e.changedTouches[0].clientY;// 松开的时候判断if (startx == endx && starty == endy) {console.log('点击');} else {console.log('滑动');}});

模拟flick手势(轻滑)
var startxdocument.addEventListener('touchstart', function (e) {startx = e.touches[0].clientX;});// 松开document.addEventListener('touchend', function (e) {var endx = e.changedTouches[0].clientX;// 判断if (startx < endx) {console.log('右滑');} else if (startx > endx) {console.log('左滑');}});

移动端京东轮播图上午回顾:​	touch事件类型:touchstart,touchmove,touchend​	touch事件对象:e.touches,e.targetTouches,e.changedTouches​	手指位置:e.touches[0].clientX/clientY​	transitionend事件:谁有过度效果添加给谁## 4. transitionend事件

谁有过渡效果,这个事件添加给谁【事件监听】


> css中过渡结束后检测的行为
>
> 谁有过渡属性,把这个事件加给谁

``

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style type="text/css">div {width: 100px;height: 100px;background: red;/*transition: all 2s linear;*/}</style>
</head>
<body><input type="button" value="点击"><div></div>
	<script type="text/javascript">var btn = document.querySelector('input');var div = document.querySelector('div');btn.onclick = function () {div.style.width = '600px';div.style.height = '600px';div.style.transition = '2s';}div.addEventListener('transitionend', function () {div.style.background = 'blue';div.style.transition = 'none';});</script>

Swiper 轮播图插件(手机移动端插件网)

目标

使用 swiper 快速实现轮播图效果

概念

Web 插件:就是别人封装好的一个 js 代码 或 css代码,可以直接拿来用。

Swiper 就是一个轮播图的插件,由其他团队写好的,开源免费,全世界开发者都可以使用。

Swiper插件官网: https://www.swiper.com.cn/

1、下载并且引入CSS文件和JS文件

2、复制内容

3、设置大小(可以不设置)

4、复制功能代码

zeptojs(手机移动端插件网):

https://www.html.cn/doc/zeptojs_api/
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Swift傻傻分不清楚系列(二)数据类型

本页包含内容&#xff1a; 整数整数范围IntUInt浮点数类型安全和类型推断数值型字面量数值型类型转换整数转换数整数和浮点数转换类型别名布尔值 整数 整数就是没有小数部分的数字&#xff0c;比如42和-23。整数可以是有符号&#xff08;正、负、零&#xff09;或者无符号&…

Python打卡第四周

这一周鸽了好久&#xff0c; 因为最近在准备比赛。课程一直没跟上。。。 今天整理完本周的知识之后休息一周复习之前的 好了。 上总结 第一天 装饰器定义函数bar&#xff0c;在foo中调用 # def foo(): # # print(in the foo) # # bar() # # foo()def bar():print(in th…

网络经济与企业管理(第 1 章:企业管理概论)

一、企业的概念 什么是企业&#xff1f; 1.企业以市场为导向&#xff0c;以价值增值作为经济活动的目的 2.企业是从事商品生产和流通的经济组织 3.企业经营过程中要自主经营、自负盈亏、独立核算和承担风险&#xff0c;具有法人资格的基本经济单位 企业发展的三个时期&#xff…

js高级 — ES6

ECMAScript 6 目标&#xff1a;学习完 ES6 可以掌握方便后续的开发&#xff0c;未来工作中大量使用 ES6 开发 ECMAScript 6 介绍ECMAScript 6 新增语法内置对象的扩展ECMAScript 6 降级处理&#xff08;学习完node再讲&#xff09; 1. ECMAScript 6 介绍 ES – ECMAScript …

Swift傻傻分不清楚系列(三)元组与可选类型

本页包含内容&#xff1a; 元组可选nilif 语句以及强制解析可选绑定隐式解析可选类型错误处理断言 元组 元组&#xff08;tuples&#xff09;把多个值组合成一个复合值。元组内的值可以是任意类型&#xff0c;并不要求是相同类型。 下面这个例子中&#xff0c;(404, "Not…

去死吧!USB转串口!!!

首先&#xff0c;这个题目有两种歧义&#xff1a;1、USB转232串口&#xff08;严格说就是这种&#xff09;&#xff01; 2、USB转USART串口&#xff08;通常都是这么叫&#xff0c;认为就是这&#xff0c;理论上是错误的&#xff0c;歧义所在&#xff09;&#xff01; USB转TTL…

IDEA微服务项目的application.yml没有绿色叶子的解决办法

1.今天在写微服务项目的时候成功入坑&#xff0c;那么问题是啥呢&#xff1f;接下来和我一起走入bug的世界吧&#xff0c;让我们看看究竟是怎么回事。 *问题描述    1.application.yml是灰色的小格子 2.实在难看 *需要解决的最终结果 1.有绿色的小叶子 解决方案上图 1. 2. …

Ajax — 第一天

上网的目的 本质目的&#xff1a;浏览和消费资源 资源&#xff1a;文字、图片、音频、视频…资源存在哪里&#xff1a;服务器上 服务器的概念 是负责存放和对外提供资源的电脑。它的性能比普通的计算机好太多了 客户端 获取和消费资源的电脑&#xff0c;叫做客户端。 我…

linux 查看进程

1.ps 各字段含义 如果让程序始终在后台执行&#xff0c;即使关闭当前的终端也执行&#xff08;之前的&做不到&#xff09;&#xff0c;这时候需要nohup。 该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后&#xff0c;在另一个终端jobs已经无法看到后台…

Swift傻傻分不清楚系列(四)基本运算符 o_O!???

本页包含内容&#xff1a; 术语赋值运算符算术运算符组合赋值运算符比较运算符三目运算符空合运算符区间运算符逻辑运算符 运算符是检查、改变、合并值的特殊符号或短语。例如&#xff0c;加号&#xff08;&#xff09;将两个数相加&#xff08;如 let i 1 2&#xff09;。更…

网络经济与企业管理(第 2 章:企业战略管理)

一、战略的性质与类型 什么是战略&#xff1a;企业发展的谋划 企业战略的三个层次&#xff1a; 企业总体战略&#xff1a;又称经营战略&#xff0c;是企业整体运营的指导思想事业层战略&#xff1a;又称竞争战略、业务层次战略、SBU战略&#xff0c; 指导具体战略经营单位。职能…

Ajax — 图书管理

注意&#xff1a;本项目基于 jQuery 文件下进行的 Ajax 请求项目&#xff0c;需要映入jQuery文件&#xff01; <body style"padding: 15px;"><!-- 添加图书的Panel面板 --><div class"panel panel-primary"><div class"panel-h…

vue动态加载组件

vue动态加载组件&#xff0c;可以使用以下方式 <component :is"propertyname" v-for"tab in tabs"></component> :is必须是指向data里面的变量&#xff0c;如果使用is"proname"&#xff0c;那么is指向的名称&#xff0c;必须在compo…

Swift傻傻分不清楚系列(五) 字符串和字符

本页包含内容&#xff1a; 字符串字面量初始化空字符串字符串可变性字符串是值类型使用字符连接字符串和字符字符串插值Unicode计算字符数量访问和修改字符串比较字符串字符串的 Unicode 表示形式 String是例如"hello, world"&#xff0c;"albatross"这样…

错误: 找不到或无法加载主类 com.leyou.LeyouItemApplication Process finished with exit code 1...

在IDEA的使用过程中&#xff0c;经常断掉服务或者重启服务&#xff0c;最近断掉服务重启时突然遇到了一个启动报错&#xff1a; 错误&#xff1a;找不到或无法加载主类 猜测&#xff1a;1&#xff0c;未能成功编译&#xff1b; 尝试&#xff1a;菜单---》Build---》Rebuild Pro…

Ajax — 第二天

Ajax-02 今天内容&#xff1a; 安装浏览器插件 聊天机器人案例 Form表单提交 模板引擎&#xff08;新的概念&#xff0c;难点&#xff09; 两个案例 Chrome浏览器插件安装 安装步骤 下载插件的网站&#xff1a; https://www.gugeapps.net/ 无需扫码 http://www.cnplu…

PC办公必备软件

Everything &#xff1a;基于名称快速定位文件和文件夹https://www.voidtools.com/zh-cn/ Notepad &#xff1a; a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languagesh…

Swift傻傻分不清楚系列(六)集合类型

本页包含内容&#xff1a; 集合的可变性&#xff08;Mutability of Collections&#xff09;数组&#xff08;Arrays&#xff09;集合&#xff08;Sets&#xff09;字典&#xff08;Dictionaries&#xff09; Swift 语言提供Arrays、Sets和Dictionaries三种基本的集合类型用来…

在.NET Core中使用DispatchProxy“实现”非公开的接口

原文地址&#xff1a;“Implementing” a non-public interface in .NET Core with DispatchProxy 原文作者&#xff1a;Filip W. 译文地址&#xff1a;https://www.cnblogs.com/lwqlun/p/11575686.html 译者&#xff1a;Lamond Lu 简介 反射是.NET中一个非常强大的概念&#x…

Ajax — 评论列表

<body style"padding: 15px;"><!-- 评论面板 --><div class"panel panel-primary"><div class"panel-heading"><h3 class"panel-title">发表评论</h3></div><form class"panel-bod…