//判断是否有重复元素
function isDuplicate() {
var argu = [], i, len;
//两种情况:1.传入第一个参数为一个数组,
// 2.传入参数为基本类型,构成了元素列表
if (arguments[0] instanceof Array) {
argu = Array.prototype.slice.call(arguments[0]);
} else {
argu = Array.prototype.slice.call(arguments);
}
argu.sort();
for (i = 0, len = argu.length; i < len – 1; i++) {
if (argu[i] === argu[i + 1]) {
return true;
}
}
return false;
}
//js循环中没有作用域概念,考察闭包。
for (var i = 0; i < document.getElementsByTagName(‘p’).length; i++) {
(function (j) {
var item = document.getElementsByTagName(‘p’)[j];
document.getElementsByTagName(‘p’)[j].onclick = function () {
item.style.backgroundColor = ‘#eee’;
}
}(i))
}
//排序,去重;
function unique(array) {
array.sort();
for (var i = 0; i < array.length – 1; i++) {
if (array[i] === array[i + 1]) {
array.splice(i, 1);
}
}
return array;
}
//搞不清楚String包装类型中的值用什么表示?
String.prototype.render = function (arr) {
var rkey, key;
for (var ind in arr) {
key = ind;
rkey = new RegExp(“${” + key + “}”);
this.replace(rkey, arr[ind]);
}
}
//创建数字的函数,注意输入有三种可能性
function range(start, stop, step) {
var res = [];
//如果遇到省略的情况,就纠正为标准形式
if (arguments.length === 1) {
stop = start;
start = 0;
step = 1;
} else if (arguments.length === 2) {
step = 1;
}
for (var i = start; i < stop; i += step) {
res.push(i);
}
return res;
}
function problem13() {
var num, i, res = [];
for (i = 0; i < 10; i++) {
num = parseInt(Math.random() * 90 + 10);
res.push(num);
}
return res.sort().reverse();
}