十九、综合案例

题目一:

封装一个函数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上 十九、综合案例的更多相关文章

  1. js上 二十、综合案例

    二十.综合案例 题目一: **1. ** 数组随机 描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据 用例: randomArray([ ...

  2. js上 十六、数组-2

    十六.数组-2 #4.3万能法:splice(): #4.3.1.删除功能 ​ 语法:arr.splice(index,num); //num表示删除的长度 ​ 功能:从下标index位置开始,删除n ...

  3. js上 十五、数组-1

    十五.数组-1 #1.什么是数组 组:由多个成员构成的一个集体. 数组:数组是值的有序集合 值就是前面所讲过的这些数据(各种数据类型的都可以) 是数组中,每一个值(如100,'js',true)都称之 ...

  4. Java学习笔记17(面向对象十:综合案例)

    在面向对象这个专题的最后 结合前面多篇文章,用到了面向对象的很多方面知识,做了一个简单的案例: 饭店案例: package hotel; /* * 酒店的员工类 * 员工共同特点:姓名,工号,工作方法 ...

  5. js上 十四、对象

    十四.对象 #1.初识对象 什么是对象? 在js中,一切皆是对象. 对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象. 桌子,笔记本,手机,人. 在日常生活中,我们是如何来描述这个对象 ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_5_综合案例_文件上传案例优化

    自定义文件命名 文件名称被写死了 服务器上传了一张图片,服务器就停止了 把服务器端的代码放在while循环里面 服务器也不用 关闭了. 上传完成后服务器端没有关闭 再来启动客户端,又上传一张投片. 多 ...

  7. js上 十八、字符串

    十八.字符串 #18.1.认识字符串 #什么是字符串 字符串可以是引号中的任意文本.字符串可以由双引号(")或单引号(')表示 ,如 'hello' , "中国" #为什 ...

  8. js上 十二、函数初步-1

    11-1.引入(认识函数) ​ 引入: 说起函数,其实我们并不陌生,在初中数学中我们就接触过函数:例如我们所学的 y = 2X+1 ; 这是一个二元一次方程,也是我们数字中的函数: ​ 当我们每次输入 ...

  9. js上 十、循环语句-1:

    十.循环语句-1: 非常之重要. 作用:重复执行一段代码 ü while ü do...while ü for 它们的相同之处,都能够实现循环. 不同的地方,格式不一样,使用的场景略有不同. #10- ...

随机推荐

  1. 使用Beyond Compare对比大篇幅文件的小技巧

    我们在编辑较大篇幅的文章时,无可避免地要经过多次的修改.有时候修改的版本过多时,我们很可能就会记不清最新版的文章对比上一版的文章,究竟修改了哪些地方.但有了Beyond Compare(Windows ...

  2. ABBYY FineReader 15 PDF有哪些好用的功能?

    ABBYY FineReader 15(Windows系统)OCR文字识别软件中的PDF编辑器,是一个对用户相当友好的编辑器,不仅可以在其中查看,搜索PDF文档,还可以用以编辑文本,添加备注,添加与删 ...

  3. Eclipse的环境配置

    1.想要配置Eclipse的环境,就要先下载Eclipse,并安装它,不会下载安装的小伙伴可以点击下面给的链接,里面有我写的详细的教程,这里就不重复了 Eclipse下载与安装:https://blo ...

  4. python-交互模式

    1.打开python交互式命令行: Windows+R→回车→输入python 如图 输入python进入交互模式,相当于启动了python解释器,输入一行代码就执行一行代码,可以用交互模式去验证每一 ...

  5. 浅谈树链剖分 F&Q

    这是一篇迟来的博客,由于我懒得写文章,本篇以两个问题阐述笔者对树链剖分的初步理解. Q1:树链剖分解决什么问题? 树链剖分,就是把一棵树剖分成若干连续的链,将这些链里的数据映射在线性数组上维护.比方说 ...

  6. F - LCS 题解(最长公共子序列记录路径)

    题目链接 题目大意 给你两个字符串,任意写出一个最长公共子序列 字符串长度小于3e3 题目思路 就是一个记录路径有一点要注意 找了好久的bug 不能直接\(dp[i][j]=dp[i-1][j-1]+ ...

  7. sentinel降级误解

    public void initDegradeRule(){ List<DegradeRule> rules=new ArrayList<>(); DegradeRule ru ...

  8. Kafka入门之consumer--rebalance流程

    重平衡(rebalance) 旧版本Kafka依托于Zk进行rebalance,新版本consumer使用了Kafka内置的一个全新的组协调协议.对于每个组而言,Kafka的某个broker会被选举为 ...

  9. .nnmodel to .mlmodel

    做项目时遇到.nnmodel 模型,不知道这是什么框架模型,没有头绪,抓住文件magic number是lzfse compressed, compressed tables. 在https://gi ...

  10. Beta冲刺——总结

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 团队GitHub地 ...