码迷,mamicode.com
首页 > Web开发 > 详细

三十道JS常见程序题(一)

时间:2020-06-18 16:31:21      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:数据   val   string   ice   方式   upper   cti   htm   rand   

1、写出代码对下列数组去重并从大到小排列{5,2,3,6,8,6,5,4,7,1,9}

function fn(arr){
for (var i = 0; i < arr.length-1; i++) {
for (var j = 0; j < arr.length-1-i; j++) { if(arr[ j]<arr[ j+1]){
var temp = arr[ j]; arr[ j]=arr[ j+1]; arr[ j+1]=temp;
                           }
                 }
}
for (i = 0; i < arr.length; i++) { var c=arr[i];
for (var s = i+1; s < arr.length; s++) { if(arr[s]==c)
arr.splice(s,1); s--;
}
}
}
return arr;
}
console.log(fn([5,2,3,6,8,6,5,4,7,1,9]).toString());

2、用 JavaScript 实现冒泡排序。数据为 23、45、18、37、92、13、24

//升序算法function sort(arr){
for (var i = 0; i <arr.length; i++) {
for (var j = 0; j <arr.length-i; j++) { if(arr[ j]>arr[ j+1]){
var c=arr[ j];//交换两个变量的位置arr[ j]=arr[ j+1];
arr[ j+1]=c;
}
};
};
return arr.toString();
}
console.log(sort([23,45,18,37,92,13,24]));

3、用 js 实现随机选取 10–100 之间的 10 个数字,存入一个数组,并排序

function randomNub(aArray, len, min, max) { if (len >= (max - min)) {
return ‘超过‘ + min + ‘-‘ + max + ‘之间的个数范围‘ + (max - min - 1) + ‘个
的总数‘;
}
if (aArray.length >= len) {
aArray.sort(function(a, b) { return a - b
});
return aArray;
}
var nowNub = parseInt(Math.random() * (max - min - 1)) + (min + 1); for (var j = 0; j < aArray.length; j++) {
if (nowNub == aArray[ j]) { randomNub(aArray, len, min, max); return;
}
}
aArray.push(nowNub); randomNub(aArray, len, min, max); return aArray;
}
var arr=[]; randomNub(arr,10,10,100);

4、已知数组 var stringArray = [“This”, “is”, “Baidu”, “Campus”], Alert 出”This is Baidu Campus”。

答案:var stringArray = ["This", "is", "Baidu", "Campus"] alert(stringArray.join(""))

5、已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”。

function combo(msg){ var arr=msg.split("-"); for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
}
msg=arr.join(""); return msg;

6、下面这段 JS 输出什么,并简述为什么?

function Foo() { var i = 0;
return function () { console.log(i++);
}
}
var f1 = Foo(), f2 = Foo(); f1();
f1();
f2(); console.log(i);
0//f1=Foo() 相当于 f1 赋值为函数 Foo()的返回值 f1=function(){ console.log(i++)
}
1//因为 f1=了一个 function 所以有了作用域,f2 和 f1 不同,不在一个内存中0
报错  //i 为 Foo 内部的变量全局不可访问,全局中没有 i 变量所以会报错

7 、 有 这 样 一 个 URL: http://item.taobao.com/item.htm?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 urlObject = {};
if (/\?/.test(url)) {
var urlString = url.substring(url.indexOf("?") + 1); var urlArray = urlString.split("&");
for (var i = 0, len = urlArray.length; i < len; i++) { var urlItem = urlArray[i];
var item = urlItem.split("="); urlObject[item[0]] = item[1];
}
return urlObject;
}
return null;
}

8、var numberArray = [3,6,2,4,1,5]; (考察基础 API)
1) 实现对该数组的倒排,输出[5,1,4,2,6,3]

var numberArray = [3,6,2,4,1,5]; alert( numberArray .reverse())

2) 实现对该数组的降序排列,输出[6,5,4,3,2,1]

var numberArray = [3,6,2,4,1,5];
// a-b 输出从小到大排序,b-a 输出从大到小排序。numberArray .sort(function(a,b){
return b-a}); console.log((numberArray .join()));

9、输出今天的日期,以 YYYY-MM-DD 的方式,比如今天是 2014 年 9 月 26
日,则输出 2014-09-26

var d = new Date();
// 获取年,getFullYear()返回 4 位的数字var year = d.getFullYear();
// 获取月,月份比较特殊,0 是 1 月,11 是 12 月var month = d.getMonth() + 1;
// 变成两位
month = month < 10 ? ‘0‘ + month : month;
// 获取日
var day = d.getDate();
day = day < 10 ? ‘0‘ + day : day; alert(year + ‘-‘ + month + ‘-‘ + day);

10、将字符串”<tr><td>{$id}</td><td>{$name}</td></tr>”中的{$id} 替换成 10,{$nny (使用正则表达式)

答 案 : ” <tr><td>{$id}</td><td>{$id}_{$name}</td></tr> ” .replace(/{\$id}/g, ’ 10′).replace(/{\$name}/g, ‘Tony’);

三十道JS常见程序题(一)

标签:数据   val   string   ice   方式   upper   cti   htm   rand   

原文地址:https://blog.51cto.com/14648170/2505569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!