十九、综合案例

题目一:

封装一个函数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. bWAPP----HTML OS Command Injection - Blind

    OS Command Injection - Blind 先上代码,他判断了win还是linux然后进行了ping但是结果并没有返回. 1 <div id="main"> ...

  2. java开发两年!这些异常处理的方式你得知道,不然你凭什么涨薪!

    前言 异常是在程序中导致程序中断运行的一种指令流,当异常发生时,程序将直接中断,不再执行后续的任何操作! 示例:两数相除,若不处理任何异常,则只有在正确输入两个数字时,才能显示出运算结果. publi ...

  3. 怎么在苹果笔记本上用Folx重新下载已完成的任务

    大家在完成了任务下载后,有时会将下载的文件移动到其他文件夹中,或者是,当下载的文件已经使用完毕时,有些用户会将文件删除.以上的两种情况,都会导致Folx所属任务查看功能失效,也就是说,无法找到任务对应 ...

  4. 对于MySQL数据库四种隔离等级

    对于MySQL事务有四种隔离级别,分别是以下四种: 1.读未提交 2.读提交 3.可重复读 4.串行化(加锁) 对于隔离我们都是说在并发的情况下发生的事情,读取的数据在并发的情况下会发生什么情况. 并 ...

  5. leetcode 33和 leetcode81 II

    //接上上一篇博客,继续这个题目,现在数组中会有重复元素,情况将会变得十分复杂,比如说1,1,1,1,1   或者1,1,3,1再来 3,3,3,1,1,1,3,这些都是可以的,都是符合题目要求的,如 ...

  6. 【初等数论】裴蜀定理&扩展欧几里得算法

    裴蜀定理: 对于\(a,b\in N^*, x, y\in Z\),方程\(ax+by=k\)当且仅当\(gcd(a, b)|k\)时有解. 证明: 必要性显然. 充分性:只需证明当\(k=gcd(a ...

  7. Java基础教程——内部类

    内部类 内部类(inner class)是定义在另一个类中的类 内部类的好处: |--1.隐藏机制:内部类封装性更好,隐藏在一个类之中,同一包中的其他类也不能访问 |--2.内部类可以访问外围类的私有 ...

  8. ESP8266 ESP-01制作B站粉丝计数器 | Arduino IDE开发ESP8266 | ESP8266存储读取用户数据

    1.实物图 2.原理图 3.Arduino程序 在程序中修改自己的B站UID和自己家的WiFi名称及密码即可. /*B站粉丝计数器*/ /******************************* ...

  9. 浅谈代理模式与java中的动态代理

    代理模式的定义: 代理模式是一个使用律非常高的模式,定义如下: 为其他对象提供一种代理,以控制对这个对象的访问. 类图: 简单的静态代理: public interface IRunner{ //这是 ...

  10. C语言--计算代码段运行时间

    c语言中有专一包含计算时间函数的头文件,time.h.当我们需要计算某段程序运行的时间时就需要用到time.h包含的clock()函数,在这里介绍一下如何使用这个函数计算代码运行时间. clock函数 ...