牛客JS编程大题(二)

11.统计数组 arr 中值等于 item 的元素出现的次数

function count(arr, item) {
var num = 0;
for(var i = 0;i < arr.length;i++){
if(arr[i] === item){
num++;
}
}
return num;
}

12.找出数组 arr 中重复出现过的元素

function duplicates(arr) {
var a = [];
arr.sort();
for(var i = 0;i < arr.length;i++){
if(arr[i]==arr[i+1]&&(a.indexOf(arr[i])==-1)){
a.push(arr[i]);
}
}
return a;
}

13.为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组

function square(arr) {
var a = [];
for(var i = 0;i < arr.length;i++){
a.push(arr[i]*arr[i]);
}
return a;
}

14.在数组 arr 中,查找值与 item 相等的元素出现的所有位置

function findAllOccurrences(arr, target) {
var temp = [];
for(var i = 0;i < arr.length;i++){
if(arr[i] == target){
temp.push(i);
}
}
return temp;
}

15.给定的 js 代码中存在全局变量,请修复

function globals() {
var myObject;
myObject = {
name : 'Jory'
};

return myObject;
}

16.请修复给定的 js 代码中,函数定义存在的问题

function functions(flag) {
if (flag) {
var getValue=function() { return 'a'; };
} else {
var getValue=function() { return 'b'; };
}

return getValue();
}

17.修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例

function parse2Int(num) {
return parseInt(num,10);
}

18.判断 val1 和 val2 是否完全等同

function identity(val1, val2) {
if(val1 === val2){
return true;
}else{
return false;
}
}

19.实现一个打点计时器,要求
1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1
2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作
3、第一个数需要立即输出

function count(start,end){
console.log(start++);
var timer = setInterval(function(){
if(start <= end){
console.log(start++);
}else{
clearInterval(timer);
}
},100);
return{
cancel:function(){
clearInterval(timer);
}
};
}

20.实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num

function fizzBuzz(num) {
var str = "";

if(typeof(num) == "number"){
if(num%3 == 0)
str+="fizz";
if(num%5 == 0)
str+="buzz";
if(num%3!=0&&num%5!=0)
return num;
}else return false;
return str;
}

上一篇:javascript:location.reload()和location.replace()的区别,及对图片缓存的影响。


下一篇:CSS非ASCII字符最佳实践