![](https://img-blog.csdnimg.cn/2020062909272765.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
编程题
编程题板块
LuckXinXin
加油
展开
-
实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
Object.prototype.clone = function(){ var o = this.constructor === Array ? [] : {}; for(var e in this){ o[e] = typeof this[e] === "object" ? this[e].clone() : this[e]; } return o; }原创 2020-07-23 09:52:58 · 379 阅读 · 0 评论 -
数组扁平化处理
实现一个flatten方法,使得输入一个数组,该数组里面的元素也可以是数组,该方法会输出一个扁平化的数组function flatten(arr){ return arr.reduce(function(prev,item){ return prev.concat(Array.isArray(item)?flatten(item):item); },[]);}...原创 2020-07-22 09:22:44 · 137 阅读 · 0 评论 -
实现一个函数,判断输入是不是回文字符串
function run(input) { if (typeof input !== 'string') return false; return input.split('').reverse().join('') === input;}原创 2020-07-22 09:21:56 · 329 阅读 · 0 评论 -
实现每隔一秒钟输出1,2,3...数字
for(var i=0;i<10;i++){ (function(j){ setTimeout(function(){ console.log(j+1) },j*1000) })(i)}原创 2020-07-22 09:21:21 · 1669 阅读 · 0 评论 -
写一个function,清除字符串前后的空格
使用自带接口trim(),考虑兼容性:if (!String.prototype.trim) { String.prototype.trim = function() { return this.replace(/^\s+/, "").replace(/\s+$/,""); }} // test the function var str = " \t\n test string ".trim(); alert(str == "test string"); //.原创 2020-07-21 09:44:55 · 252 阅读 · 0 评论 -
写一段JS程序提取URL中的各个GET参数
有这样一个URL:https://blog.csdn.net/LuckXinXin?a=1&b=2&c=&d=xxx&e,请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中,如{a:'1', b:'2', c:'', d:'xxx', e:undefined}function serilizeUrl(url) { var result = {}; url = url.split(原创 2020-07-21 09:44:06 · 568 阅读 · 0 评论 -
用js实现随机选取10–100之间的10个数字,存入一个数组,并排序
var iArray = []; funtion getRandom(istart, iend){ var iChoice = istart - iend +1; return Math.floor(Math.random() * iChoice + istart; } for(var i=0; i<10; i++){ iArray.push(getRandom(10,100)); } iArray.sort();原创 2020-07-21 09:42:32 · 434 阅读 · 0 评论 -
输出今天的日期
以YYYY-MM-DD的方式,比如今天是2020年7月20日,则输出2020-07-20var d = new Date(); // 获取年,getFullYear()返回4位的数字 var year = d.getFullYear(); // 获取月,月份比较特殊,0是1月,11是12月 var month = d.getMonth() + 1; // 变成两位 month = month < 10 ? '0' + month : month; // 获取日 v.原创 2020-07-20 09:40:01 · 613 阅读 · 0 评论 -
定义一个log方法,让它可以代理console.log的方法
可行的方法一: function log(msg) { console.log(msg); } log("hello world!") // hello world!如果要传入多个参数呢?显然上面的方法不能满足要求,所以更好的方法是: function log(){ console.log.apply(console, arguments); };...原创 2020-07-20 09:38:32 · 507 阅读 · 0 评论 -
下面这个ul,如何点击每一列的时候alert其index
<ul id=”test”> <li>这是第一条</li> <li>这是第二条</li> <li>这是第三条</li> </ul> // 方法一: var lis=document.getElementById('2223').getElementsByTagName('li'); for(var i=0;i<3;i++) { lis[i].in.原创 2020-07-20 09:37:51 · 1059 阅读 · 1 评论 -
实现一个函数clone
可以对JavaScript中的5种主要的数据类型,包括Number、String、Object、Array、Boolean)进行值复// 方法一: Object.prototype.clone = function(){ var o = this.constructor === Array ? [] : {}; for(var e in this){ o[e] = typeof this[e] === "object" ?.原创 2020-07-19 18:43:23 · 193 阅读 · 0 评论 -
bind的用法,以及如何实现bind的函数和需要注意的点
bind的作用与call和apply相同,区别是call和apply是立即调用函数,而bind是返回了一个函数,需要调用的时候再执行。 一个简单的bind函数实现如下Function.prototype.bind = function(ctx) { var fn = this; return function() { fn.apply(ctx, arguments); };};...原创 2020-07-19 18:42:17 · 891 阅读 · 0 评论 -
编写一个方法 求一个字符串的字节长度
假设:一个英文字符占用一个字节,一个中文字符占用两个字节function GetBytes(str){ var len = str.length; var bytes = len; for(var i=0; i<len; i++){ if (str.charCodeAt(i) > 255) bytes++; } return bytes;}alert(GetBytes(“你好,sx”));...原创 2020-07-19 18:41:41 · 1418 阅读 · 0 评论 -
快速排序
采用二分法,取出中间数,数组每次和中间数比较,小的放到左边,大的放到右边var arr = [5,1, 88, 66, 23, 11,8];function quickSort(arr) {if(arr.length == 0) {return []; // 返回空数组}var cIndex = Math.floor(arr.length / 2);var c = arr.splice(cIndex, 1);var l = [];var r = [];for (var i =.原创 2020-07-19 18:40:36 · 95 阅读 · 0 评论 -
冒泡排序
每次比较相邻的两个数,如果后一个比前一个小,换位置var arr = [5,1, 88, 66, 23, 11,8];function bubbleSort(arr) {for (var i = 0; i < arr.length - 1; i++) { for(var j = 0; j < arr.length - i - 1; j++) { if(arr[j + 1] < arr[j]) { var temp; .原创 2020-07-19 18:39:39 · 92 阅读 · 0 评论 -
如何判断一个对象是否为数组
function isArray(arg) { if (typeof arg === 'object') { return Object.prototype.toString.call(arg) === '[object Array]'; } return false;}原创 2020-07-19 18:37:43 · 90 阅读 · 0 评论 -
写一个通用的事件侦听器函数
markyun.Event = { // 视能力分别使用dom0||dom2||IE方式 来绑定事件 // 参数: 操作的元素,事件名称 ,事件处理程序 addEvent : function(element, type, handler) { if (element.addEventListener) { //事件类型、需要执行的函数、是否捕捉 element....原创 2020-07-17 09:57:08 · 265 阅读 · 0 评论