js上 十九、综合案例
十九、综合案例
题目一:
封装一个函数equal(a1,a2),传入两个一维数组,判断两个数组是否包含相同的元素,如果相等,函数的返回值为true,
不相等,函数的返回值为false
1)例:arr1 = ['a', 'b'] arr2 =['b', 'a'],equal(arr1,arr2)的返回值为true
2)例:arr3 = [2,3] arr4=[3,4],equal(arr3,arr4)的返回值为false;
思路:1)排序(sort),2)判断两个数组对应下标的内容是否不等。即如果arr1[i]!==arr2[i];则表示有不相同的,返回false 。3)都相等,返回true

题目二:
封装一个largestOfFour函数,将一个二维数组作为该函数的参数,这个二维数组中包含了4个小数组,
分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。
调用:largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]) //返回值[5,27,39,1001]
思路:对每个子数组进行降序排列,然后将子数组的第一个值添加到新数组中

题目三:
完成getSum(),该函数接收1个数组作为参数,返回该数组中所有非重复数字的和;
例如:getSum([undefined,"23year",19,"097",1,"hello",null,1]) // return 20
思路:1)定义一个新数组;2)遍历数组的每一项,然后判断是否在新数组中存在(indexOf),并且是数字,3)如果是添加到新数组中(push),并且,用sum加上当前遍历的项

题目四:
完成uniqueNums(),该函数接收1个参数n(一个不大于31的整数),
其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32];
例如:uniqueNums(3) // return [19,7,10]
思路:1)定义一个新数组,2)当数组的长度不到3时,需要随机一个值,然后判断是否在新数组中(indexOf),如果不再,则添加到新数组中。
随机n-m之间的整数 :Math.floor(Math.random()*(m-n+1)+n)

题目五:
使用函数编写,实现统计指定字符串中指定字符出现的次数,字符串和要统计的字母作为参数传递。str="acdkjcdeicl" ; strCount(str, “c”)
思路:计数器: 遍历每一个字符。判断是否和val全等,如果全等,计数器加一

题目六:
封装一个函数,实现字符串转驼峰大小写将字符串"get-elements-by-tag-name",转换为驼峰形式getElementsByTagName
思路:1.将字符串分隔为数组 ["get",'elements','by','tag','name'] E+lements = 'Elements'
2.遍历数组,然后将每一个单词的首字符拿到转大写+这个单词首字符字符后面的内容;

题目七:
确保字符串的每个单词首字母都大写,其余部分小写。
(eg:titleCase("I'm a little tea pot") 应该返回 "I'm A Little Tea Pot".
titleCase("sHoRt AnD sToUt") 应该返回 "Short And Stout".)
思路:将每个单词分隔 ,然后将每个一单词的首字符转大写(toUpperCase),拼接上后面的内容(slice);

题目八:
检查一个字符串(str)是否以指定的字符串(target)结尾。
如果是,返回true;如果不是,返回false。
例如:应该返回 true.
confirmEnding("Connor", "n") 应该返回 false.
confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification")
应该返回 false.
思路:截取(slice)字符串中**倒数(-)**target.length个字符,,判断是否全等于target,如果全等,则返回true;

题目九:
给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false
思路:遍历,判断相邻的两个内容是否全等

题目十:
封装一个函数unite(),传入两个或两个以上的数组,返回一个以给定的原数组排序的不包含重复值的新数组。
说明:所有数组中的左右值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。
例如:unite([1,3,2],[5,2,1,4],[2,1]) //返回结果:[1,3,2,5,4]
unite() //返回结果:[1,2,3,5,4,6,7,8];

#作业:
**1: ** 数组随机
描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据
用例:
randomArray([
'小明', '小红', '小绿', '小白', '小黄', '小蓝', '小黑', '小青'
], 3)
结果:
['小红', '小白', '小明']
**思路 ** **:获取数组的随机值: ** Math.floor(Math.random()*arr.length);
利用循环多次随机,然后判断随机来的内容是否在新数组中存在,(indexOf判断)如果不存在,添加到新数组中,当数组的长度达到指定的长度,则不需要随机
2: 只出现一次的数字
描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例 1:
输入: singleNumber( [2,2,1] )
输出: 1
示例 2:
输入: singleNumber([4,1,2,1,2])
输出: 4
思路:判断数组的每一个元素第一次出现的位置(indexOf)和最后一次出现的位置(lastIndexOf)的位置一样(即从前往后找和从后往前找,位置一样)那说明只有一个,不一样,说明有两个
3,时间
JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式
描述:类似于微信朋友圈,根据时间戳转换出(刚刚,1分钟前,1小时前,昨天,几天前,几周前,几个月前)
var toDateFriendly = function (timestr) {}
实例
toDateFriendly(1564738511482) // 刚刚
toDateFriendly((+new Date()) – 1000 * 60 ) // 1分钟前
思路:调用时传入的是发送的时间;
获取当前时间;
求时间差
然后判断时间差,如果小于1分钟,那么弹出刚刚
如果时间差小于1小时,那么具体计算到底是多少分钟
如果实现差小于1天,那么具体计算到底是多少小时
否则,具体计算是多少天;
js上 十九、综合案例的更多相关文章
- js上 二十、综合案例
二十.综合案例 题目一: **1. ** 数组随机 描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据 用例: randomArray([ ...
- js上 十六、数组-2
十六.数组-2 #4.3万能法:splice(): #4.3.1.删除功能 语法:arr.splice(index,num); //num表示删除的长度 功能:从下标index位置开始,删除n ...
- js上 十五、数组-1
十五.数组-1 #1.什么是数组 组:由多个成员构成的一个集体. 数组:数组是值的有序集合 值就是前面所讲过的这些数据(各种数据类型的都可以) 是数组中,每一个值(如100,'js',true)都称之 ...
- Java学习笔记17(面向对象十:综合案例)
在面向对象这个专题的最后 结合前面多篇文章,用到了面向对象的很多方面知识,做了一个简单的案例: 饭店案例: package hotel; /* * 酒店的员工类 * 员工共同特点:姓名,工号,工作方法 ...
- js上 十四、对象
十四.对象 #1.初识对象 什么是对象? 在js中,一切皆是对象. 对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象. 桌子,笔记本,手机,人. 在日常生活中,我们是如何来描述这个对象 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_5_综合案例_文件上传案例优化
自定义文件命名 文件名称被写死了 服务器上传了一张图片,服务器就停止了 把服务器端的代码放在while循环里面 服务器也不用 关闭了. 上传完成后服务器端没有关闭 再来启动客户端,又上传一张投片. 多 ...
- js上 十八、字符串
十八.字符串 #18.1.认识字符串 #什么是字符串 字符串可以是引号中的任意文本.字符串可以由双引号(")或单引号(')表示 ,如 'hello' , "中国" #为什 ...
- js上 十二、函数初步-1
11-1.引入(认识函数) 引入: 说起函数,其实我们并不陌生,在初中数学中我们就接触过函数:例如我们所学的 y = 2X+1 ; 这是一个二元一次方程,也是我们数字中的函数: 当我们每次输入 ...
- js上 十、循环语句-1:
十.循环语句-1: 非常之重要. 作用:重复执行一段代码 ü while ü do...while ü for 它们的相同之处,都能够实现循环. 不同的地方,格式不一样,使用的场景略有不同. #10- ...
随机推荐
- bWAPP----HTML OS Command Injection - Blind
OS Command Injection - Blind 先上代码,他判断了win还是linux然后进行了ping但是结果并没有返回. 1 <div id="main"> ...
- MQ消息中间件,面试能问些什么?
MQ消息中间件,面试能问些什么? 为什么使用消息队列?消息队列的优点和缺点? kafka.activemq.rabbitmq.rocketmq都有什么优缺点? 面试官角度分析: (1)你知不知道你们系 ...
- 博客新域名www.tecchen.tech
新年祝福 祝新的一年,大朋友实现所有梦想,小朋友健康成长- 新域名 https://www.tecchen.tech 有效期:10年 旧链接 之前的链接请自行替换为新链接地址,包括但不限于以下二级域名 ...
- 思维导图软件MindManager新手入门教程
MindManager是一款创造.管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能可以快速捕捉.组织和共享思维.想法.资源和项目进程等等.MindManager新手入门教程专为新手用户 ...
- C语言模拟实现先来先服务(FCFS)和短作业优先(SJF)调度算法
说明 该并非实现真正的处理机调度,只是通过算法模拟这两种调度算法的过程. 运行过程如下: 输入进程个数 输入各个进程的到达事件 输入各个进程的要求服务事件 选择一种调度算法 程序给出调度结果:各进程的 ...
- (在模仿中精进数据可视化05)疫情期间市值增长top25公司
本文完整代码及数据已上传至我的Github仓库https://github.com/CNFeffery/FefferyViz 1 简介 新冠疫情对很多实体经济带来冲击的同时,也给很多公司带来了新的增长 ...
- 【mq读书笔记】mq消息存储
comitlog文件 ConsumerQueue文件 IndexFile文件 RocketMQ将所有主题的消息存储在同一个文件中,确保消息发送时顺序写文件. 为了提高消息消费的效率RocketMQ引入 ...
- Happy Tree Friends——团队展示
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 团队名称 Happy Tree Friends 这个作业要求在哪里 团队作业第一次 这个作业的目标 团队合作 作业正文 正文 其 ...
- PyQt+moviepy音视频剪辑实战1:多个音视频合成顺序播放或同屏播放的视频文件实现详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的defaultDropAction属性
老猿Python博文目录 老猿Python博客地址# 一.概述 defaultDropAction属性用于控制QAbstractItemView及其子类的实例视图中拖放时放下的默认操作.该属性的类型为 ...