1. 程式人生 > >牛客JS編程大題(二)

牛客JS編程大題(二)

返回 timer [] temp 要求 參數 != 字符串 調用

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;
}

牛客JS編程大題(二)