zoukankan      html  css  js  c++  java
  • 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

    img

    题目二:

    封装一个largestOfFour函数,将一个二维数组作为该函数的参数,这个二维数组中包含了4个小数组,

    分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。

    调用:largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]) //返回值[5,27,39,1001]

    思路:对每个子数组进行降序排列,然后将子数组的第一个值添加到新数组中

    img

    题目三:

    完成getSum(),该函数接收1个数组作为参数,返回该数组中所有非重复数字的和;

    例如:getSum([undefined,"23year",19,"097",1,"hello",null,1]) // return 20

    思路:1)定义一个新数组;2)遍历数组的每一项,然后判断是否在新数组中存在(indexOf),并且是数字,3)如果是添加到新数组中(push),并且,用sum加上当前遍历的项

    img

    题目四:

    完成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)

    img

    题目五:

    使用函数编写,实现统计指定字符串中指定字符出现的次数,字符串和要统计的字母作为参数传递。str="acdkjcdeicl" ; strCount(str, “c”)

    思路:计数器: 遍历每一个字符。判断是否和val全等,如果全等,计数器加一

    img

    题目六:

    封装一个函数,实现字符串转驼峰大小写将字符串"get-elements-by-tag-name",转换为驼峰形式getElementsByTagName

    思路:1.将字符串分隔为数组 ["get",'elements','by','tag','name'] E+lements = 'Elements'

    2.遍历数组,然后将每一个单词的首字符拿到转大写+这个单词首字符字符后面的内容;

    img

    题目七:

    确保字符串的每个单词首字母都大写,其余部分小写。

    (eg:titleCase("I'm a little tea pot") 应该返回 "I'm A Little Tea Pot".

    titleCase("sHoRt AnD sToUt") 应该返回 "Short And Stout".)

    思路:将每个单词分隔 ,然后将每个一单词的首字符转大写(toUpperCase),拼接上后面的内容(slice);

    img

    题目八:

    检查一个字符串(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;

    img

    题目九:

    给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false

    思路:遍历,判断相邻的两个内容是否全等

    img

    题目十:

    封装一个函数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];

    img

    #作业:

    **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天,那么具体计算到底是多少小时

    否则,具体计算是多少天;

  • 相关阅读:
    C#实现-浏览器UA解析获得手机、系统、浏览器等信息
    C#代码实现-冒泡排序
    C# DateTime 工具类
    net core 3.1 跨域 Cors 找不到 “Access-Control-Allow-Origin”
    C#/.Net开发入门篇(3)——console类的输入输出
    C#/.Net开发入门篇(2)——第一个控制台应用程序
    C#/.Net开发入门篇(1)——开发工具安装
    docker 学习笔记(2)--docker file命令
    docker 学习笔记(1)--常用命令
    导出大数据方法。批量导BOM
  • 原文地址:https://www.cnblogs.com/yzy521/p/14132716.html
Copyright © 2011-2022 走看看