JavaScript 练习题

    xiaoxiao2021-03-25  108

    这份练习题会持续更新!

    1. 计算两个日期的天数差

    函数模板

    function daySpan (date1, date2) { // your code }

    函数参数

    date1: Date 第一个日期date2: Date 第二个日期

    调用样例

    daySpan(new Date(2016, 2, 7), new Date(2016, 4, 12)) // 66 daySpan(new Date(2016, 4, 12), new Date(2016, 2, 7)) // 66

    2. 计算两个日期的天数差 - 高级版

    函数模板

    function daySpan (date1, date2) { // your code }

    函数参数

    date1: String 第一个日期date2: String 第二个日期

    这两个日期字符串都会按照YYYY-MM-DD的格式输入,如2016-10-09

    调用样例

    daySpan('2016-02-07', '2016-04-12') // 65 daySpan('2016-04-12', '2016-02-07') // 65

    3. 计算数组中元素重复次数

    函数模板

    function countRepeat (arr) { // your code }

    函数参数

    arr: Array<Number> 仅包含数字的数组

    调用样例

    countRepeat([2, 9, 8, 4, 5, 3, 4, 8, 9, 9, 1, 0, 2, 1]) /* 顺序不影响结果 { '0': 1, '1': 2, '2': 2, '3': 1, '4': 2, '5': 1, '8': 2, '9': 3 } */

    4. 驼峰转换函数

    在代码的世界里,标识符中不能有空格, 但有时一个变量必须由两个或更多个单词来表达,如count repeat、get own poperty descriptor等。 这时候就必须把他们写成第一个单词全小写,第二个以及后面的单词,除了首字母全小写的形式(即驼峰), 如countRepeat、getOwnPropertyDescriptor

    下面你需要编写一个函数来实现这个功能

    函数模板

    function camelCase (str) { // your code }

    函数参数

    str: String 要转换的字符串,可能的形式看下面的例子

    调用样例

    camelCase('hey guys') // 'heyGuys' camelCase('HELLO-world') // 'helloWorld' camelCase('oh mY---gOd') // 'ohMyGod'

    5. 寻找字符串中第一个未重复的字符

    寻找字符串中第一个未重复的字符,如果没有找到,则返回一个空字符串('')

    函数模板

    function firstNonRepeat (str) { // your code }

    函数参数

    str: String 要寻找的字符串,可能是任何内容

    调用样例

    firstNonRepeat('aaabccc') // 'b' firstNonRepeat('aabccbd') // 'd' firstNonRepeat('aabxbcc') // 'x' firstNonRepeat('6666666') // ''

    6. 展平数组

    数组中可以嵌套数组,要嵌套多少层都可以,比如[1, 2, [[3], 4]]。 这样看起来很不爽,所以我们要把它展开,只留下一层数组: [1, 2, 3, 4]

    提示:判断xxx是否是数组的方法为 Array.isArray(xxx)

    函数模板

    function flatten (arr) { // your code }

    函数参数

    arr: Array 包含嵌套数组的数组

    调用样例

    flatten([1, 2, 3]) // [1, 2, 3] flatten([1, 2, [3]]) // [1, 2, 3] flatten([1, 2, [[3], 4]]) // [1, 2, 3, 4] flatten([1, [2, [[3], [4]]]]) // [1, 2, 3, 4]

    7. 判断空对象

    在 JavaScript 编程中,经常我们要判断某个变量是否为空对象,而不是 null 或者 undefined,那么,请实现一个函数判断变量是否为空对象。

    函数模板

    function isEmptyObject (obj) { // your code }

    函数参数

    obj: mixed 可能为空对象的任何类型变量

    调用样例

    isEmptyObject({}) // true isEmptyObject(null) // false isEmptyObject(undefined) // false isEmptyObject('{}') // false isEmptyObject([]) // false isEmptyObject(true) // false

    8. 数组去重

    返回一个无重复值的数组

    函数模板

    function unique (arr) { // your code }

    函数参数

    arr: Array 反正就是一个数组

    调用示例

    unique([1, 2, 3, 4, 4, 5, 8, 6, 3, 2, 1]) // [1, 2, 3, 4, 5, 8, 6]

    9. 实现一个 reduce 函数

    reduce 是函数式编程中十分重要的一个函数,请实现一个 reduce 函数,可以参考 [].reduce 。

    函数模板

    function reduce (arr, func, initialValue) { // your code }

    函数参数

    arr: Array 调用 reduce 的数组func: Function reduce 执行数组中每个值的函数,包含两个参数 previousValue 上一次调用回调返回的值,或者是提供的初始值(initialValue)currentValue 数组中当前被处理的元素 initialValue:mixed 作为第一次调用 callback 的第一个参数。

    调用示例

    var total = reduce([0, 1, 2, 3], function (previousValue, currentValue) { return previousValue + currentValue }, 0) // total === 6
    转载请注明原文地址: https://ju.6miu.com/read-24361.html

    最新回复(0)