十九、综合案例

题目一:

封装一个函数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. vue中父子间传值和非父子间传值

    vue传值一般分三种方式:父组件向子组件传值.子组件向父子间传值.非父子组件进行传值 一.父组件向子组件传值:父组件引用子组件后,通过数据绑定(v-bind)向子组件传值 父组件: <templ ...

  2. SpringIOC的高级特性

    目录 1. lazy-Init延迟加载 1.1 XML方式开启延迟加载: 1.2 注解开启延迟加载: 1.3全局配置--default-lazy-init="": 应用场景: 2. ...

  3. ABBYY FineReader 15新增编辑页面布局功能

    ABBYY FineReader 15(Windows系统) 新增编辑页面布局功能,允许用户修改PDF数字文档的页面布局,包括添加或者删除文字段落,文字块以及图片,更改段落,文字块,图片位置.添加或者 ...

  4. 思维导图MindManager属性功能怎么合理使用

    在MindManager中为主题添加相应的标注可以使读者更好的理解主题内容,增强导图的可读性,因此,如何在MindManager中为主题添加标注也就成了我们的关注点. 巧妙使用这款思维导图软件的属性功 ...

  5. mysql5.5升级5.7(1)

    卸载旧版本mysql 当然要记得备份数据库数据啦 1.查看需要卸载的部分: rpm -qa |grep -i mysql 2.开始卸载: yum remove mysql* 接下来是安装新版mysql ...

  6. 【模版 Luogu P3808/P3796/P5357】AC自动机(简论)

    浙江集训Day9,没有出任何实质性成果,只好把昨天打完的板子记一下. 该博客基于luogu的三道模版题.只有一个大致的讲解,主要提供代码给自己参考. ------------------------- ...

  7. LaTeX中的浮动体

    浮动体代码及注释: 显示效果:

  8. 浅谈Abp vNext的模块化设计

    abp的模块化给我留下深刻的印象,模块化不是什么新概念,大家都习以为常,但是为什么要模块化,模块化的意义或者说目的是什么?也许我们思考得并不深入.难得的是abp不仅完美的阐述了模块化概念,而且把模块化 ...

  9. nacos单机,集群安装部署

    nacos单机启动 准备 下载nacos安装包 下载地址 准备centos环境 (本次测试使用docker) PS C:\Users\Administrator> docker run -tid ...

  10. LeetCode 042 Trapping Rain Water

    题目要求:Trapping Rain Water Given n non-negative integers representing an elevation map where the width ...