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
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
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
} */
在代码的世界里,标识符中不能有空格,
但有时一个变量必须由两个或更多个单词来表达,如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'
寻找字符串中第一个未重复的字符,如果没有找到,则返回一个空字符串(''
)
function firstNonRepeat (str) {
// your code
}
str: String
要寻找的字符串,可能是任何内容
firstNonRepeat('aaabccc') // 'b'
firstNonRepeat('aabccbd') // 'd'
firstNonRepeat('aabxbcc') // 'x'
firstNonRepeat('6666666') // ''
数组中可以嵌套数组,要嵌套多少层都可以,比如[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]
只保留数组中有重复的元素,有重复几次就保留几个,具体看例子
function nonUniqueElements (arr) {
// your code
}
arr: Array
包含嵌套数组的数组
nonUniqueElements([1, 2, 3, 1, 3]) // [1, 3, 1, 3]
nonUniqueElements([1, 2, 3, 4, 5]) // []
nonUniqueElements([5, 5, 5, 5, 5]) // [5, 5, 5, 5, 5]
nonUniqueElements([10, 9, 10, 10, 9, 8]) // [10, 9, 10, 10, 9]