#学习笔记#(30)牛客网JS测试题1~20题

1、题目描述

找出元素 item 在给定数组 arr 中的位置 
输出描述:
如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1

输入例子:
indexOf([ 1, 2, 3, 4 ], 3)

输出例子:
2
代码:
function indexOf(arr, item) {
				var index=-1;
				for(var i=0;i<arr.length;i++){
        			if(arr[i]==item)
        			    index=i;
       				 }
       				 return index;
				}

2、题目描述

计算给定数组 arr 中所有元素的总和 
输入描述:
数组中的元素均为 Number 类型


输入例子:
sum([ 1, 2, 3, 4 ])

输出例子:
10
代码:
function sum(arr) {
      			  var sum=0;
  				  for(var i=0;i<arr.length;i++)
  				  	sum+=arr[i];
  				  return sum;
}

3、题目描述

移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组 
输入例子:
remove([1, 2, 3, 4, 2], 2)

输出例子:
[1, 3, 4]
代码:

function remove(arr, item) {
				var newarr=[];
				for(var i=0;i<arr.length;i++){
					if(arr[i]!=item)
						newarr.push(arr[i]);
				}
				return newarr;
}


4、题目描述
移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 
输入例子:
removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)

输出例子:
[1, 3, 4]
代码:

function removeWithoutCopy(arr, item) {
				for(var i=0;i<arr.length;i++){
					if(arr[i]==item){
						arr.splice(i,1);
						i--;
					}
				}
			return arr;
}

5、题目描述

在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组 
输入例子:
append([1, 2, 3, 4],  10)

输出例子:
[1, 2, 3, 4, 10]
代码:

function append(arr, item) {
				var newarr=[];
				for(var i=0;i<arr.length;i++){
					newarr.push(arr[i]);
				}
				newarr[arr.length]=item;
				return newarr;
}

6、题目描述

删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组 
输入例子:
truncate([1, 2, 3, 4])

输出例子:
[1, 2, 3]
代码:

function truncate(arr) {
				newarr=[];
				for(var i=0;i<arr.length-1;i++){
					newarr.push(arr[i]);
				}
				return newarr;
}

7、题目描述

在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组 
输入例子:
prepend([1, 2, 3, 4], 10)

输出例子:
[10, 1, 2, 3, 4]
代码:

function prepend(arr, item) {
    var newarr=[];
    newarr[0]=item;
    for(var i=0;i<arr.length;i++){
        newarr.push(arr[i]);
    }
    return newarr;
}

8、题目描述

删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组 
输入例子:
curtail([1, 2, 3, 4])

输出例子:
[2, 3, 4]
代码:

			function curtail(arr) {
				var newarr=[];
				for(var i=1;i<arr.length;i++){
					newarr.push(arr[i]);
				}
				return newarr;
			}

9、题目描述

合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组 
输入例子:
concat([1, 2, 3, 4], ['a', 'b', 'c', 1])

输出例子:
[1, 2, 3, 4, 'a', 'b', 'c', 1]
代码:

function concat(arr1, arr2) {
	var newarr=[];
	for(var i=0;i<arr1.length;i++)
		newarr.push(arr1[i]);
	for(var i=0;i<arr2.length;i++)
		newarr.push(arr2[i]);
	return newarr;
}

10、题目描述

在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组 
输入例子:
insert([1, 2, 3, 4], 'z', 2)

输出例子:
[1, 2, 'z', 3, 4]
代码:

function insert(arr, item, index) {
	var newarr=[];
	for(var i=0;i<arr.length;i++){
		newarr.push(arr[i]);
	}
	newarr.splice(index,0,item);
	return newarr;
}

11、题目描述

统计数组 arr 中值等于 item 的元素出现的次数 
输入例子:
count([1, 2, 4, 4, 3, 4, 3], 4)

输出例子:
3
代码:

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

12、题目描述

找出数组 arr 中重复出现过的元素 
输入例子:
duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]).sort()

输出例子:
[1, 3, 4]
代码:

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

13、题目描述

为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组 
输入例子:
square([1, 2, 3, 4])

输出例子:
[1, 4, 9, 16]
代码:

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

14、题目描述

在数组 arr 中,查找值与 item 相等的元素出现的所有位置 
输入例子:
findAllOccurrences('abcdefabc'.split(''), 'a').sort()

输出例子:
[0, 6]
代码:

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

15、题目描述

给定的 js 代码中存在全局变量,请修复(在变量前加上var 即可)
function globals() {
   <span style="color:#ff0000;"> var</span> myObject = {
      name : 'Jory'
    };

    return myObject;
}

16、题目描述

请修复给定的 js 代码中,函数定义存在的问题 
输入例子:
functions(true)

输出例子:
a
代码:

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

    return getValue();
}

17、题目描述

修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例 
输入例子:
parse2Int('12'); parse2Int('12px'); parse2Int('0x12')

输出例子:
12; 12; 0
代码:

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

18、题目描述

判断 val1 和 val2 是否完全等同
代码:

function identity(val1, val2) {
	return val1 === val2 ;
}

19、题目描述

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

function count(start,end){
	console.log(start);
	var counter;
	counter=setInterval(function(){
		if(start<end){
			console.log(++start);
			}
		},100);
	var obj=new Object();
	obj.cancel=function(){
		clearInterval(counter);
	}
	return obj;
}

20、题目描述

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

输出例子:
fizzbuzz
代码:

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)
			str=num;
		return str;
		}else return false;
}











  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值