js实现类型判断,二分查找与日期格式化
来源:互联网 发布:加工中心图纸编程实例 编辑:程序博客网 时间:2024/06/01 22:54
1.类型判断
函数myType用于根据输入参数返回相应的 类型信息。
语法如下:
var str = myType (param);
使用范例如下:
myType (1); 返回值: “number”
myType (false); 返回值: “boolean”
myType ({}); 返回值: “object”
myType ([]); 返回值:” Array”
myType (function(){}); 返回值:”function”
myType (new Date()); 返回值: “Date”
请写出函数myType的实现代码。
function myType(param){ return (param===null||param===undefined)?param:param.constructor&¶m.constructor.toString().match(/function\s*([^(]*)/)[1];}
附加一道判断标准类型和内置对象类型的方法
function type(obj) {
var type = Object.prototype.toString.call(obj).slice(8, -1).toLowerCase(); //标准类型和内置对象类型判断
return type;
}
2.二分查找
函数search用于在一个已排序的数字数组中查找指定数字。
语法如下:
var index = search(arr, dst);
使用范例如下:
var arr = [1, 2, 4, 6, 7, 9, 19,20, 30, 40, 45, 47];
search(arr, 45); 返回值: 10
请写出函数search的实现代码 请给出函数,要求不能使用Array的原型方法,且算法时间复杂度低于O(n)。
function search(arr,dst,low,high){ var high=high || arr.length-1; var low=low || 0; var mid=Math.floor((low+high)/2); if(low<=high){ if(dst===arr[mid]){ return mid; }else if(dst<arr[mid]){ return search(arr,dst,low,mid-1); }else if(dst>arr[mid]){ return search(arr,dst,mid+1,high); } } return -1;}search(arr,19);//6search(arr, 45);//10
3.日期格式化
函数formatDate用于将日期对象转换成指定格式的字符串,语法如下:
var str = formatDate(date, pattern);
其中pattern的全格式为”yyyy-MM-dd HH:mm:ss”
使用范例如下:
var date = new Date(2001, 8, 11, 8, 26, 8);
formatDate(date, “yyyy”); 返回值: “2001”
formatDate(date, “yyyy-MM-dd”); 返回值: “2001-09-11”
formatDate(date, “yyyy-MM-dd HH”); 返回值: “2001-09-11 08”
formatDate(date, “yyyy-MM-dd HH:mm:ss”); 返回值:”2001-09-11 08:26:08”
请写出函数formatDate的实现代码。
方法一实现代码:var date = new Date(2001, 8, 11, 8, 26, 8);function formatDate(date,pattern) { var d = { year:date.getFullYear(), month:date.getMonth() < 10 ? '0'+date.getMonth() :date.getMonth() , day:date.getDate() < 10 ? '0'+date.getDate() : date.getDate(), hours:date.getHours() < 10 ? '0'+date.getHours() : date.getHours(), minutes:date.getMinutes() < 10 ? '0'+date.getMinutes():date.getMinutes(), seconds:date.getSeconds() < 10 ? '0'+date.getSeconds():date.getSeconds() },str; switch(pattern) { case "yyyy": str = d.year; break; case "yyyy-MM-dd": str = d.year+'-'+d.month+'-'+d.day; break; case "yyyy-MM-dd HH": str = d.year+'-'+d.month+'-'+d.day+' '+d.hours; break; case "yyyy-MM-dd HH:mm:ss": str = d.year+'-'+d.month+'-'+d.day+' '+d.hours+':'+d.minutes+':'+d.seconds; break; default: break; } return str;}formatDate(date, "yyyy"); formatDate(date, "yyyy-MM-dd"); formatDate(date, "yyyy-MM-dd HH"); formatDate(date, "yyyy-MM-dd HH:mm:ss");
方法二的实现代码:function formatDate (date,pattern) { pattern=pattern.replace(/yyyy/,date.getFullYear()); pattern=pattern.replace(/MM/,(date.getMonth()>10?date.getMonth():('0'+date.getMonth()))); pattern=pattern.replace(/dd/,(date.getDate()>10?date.getDate():('0'+date.getDate()))); pattern=pattern.replace(/HH/,(date.getHours()>10?date.getHours():('0'+date.getHours()))); pattern=pattern.replace(/mm/,(date.getMinutes()>10?date.getMinutes():('0'+date.getMinutes()))); pattern=pattern.replace(/ss/,(date.getSeconds()>10?date.getSeconds():('0'+date.getSeconds()))); return pattern;}var date = new Date(2001,8,11,8,26,8);console.log(formatDate(date,"yyyy-MM-dd HH:mm:ss"));
- js实现类型判断,二分查找与日期格式化
- js实现日期格式化
- js实现二分查找
- js实现二分查找
- JS实现二分查找算法
- js 二分查找的实现
- JS日期操作(日期转换、判断闰年、格式化等)
- django 过滤器日期格式化;js判断日期前后
- 二分查找实现与分析
- 二分查找实现与分析
- js 判断日期与时间
- js中的日期获取与格式化
- 前端js、jQuery实现日期格式化、字符串格式化
- 格式化字符串,日期类型格式化
- js 二分查找的两种实现
- 日期类型格式化
- java格式化日期类型
- js日期转换--日期格式化
- UISegmentedControl 背景颜色 和 字体颜色
- javascript添加到收藏夹写法
- EF Mapping Entity Framework Fluent API
- JS亮点之间画直线
- maven工程 将main函数打成jar包
- js实现类型判断,二分查找与日期格式化
- springmvc知识点概况(二)
- 迭代器生命周期控制
- mysql中group by 的用法解析
- 1048 石子归并
- Org Mode
- vnc viewer不能复制黏贴
- angularjs 监听ng-repeat状态,然后执行脚本
- 链接】iOS被拒6次的ipv6