牛客网前端编程题库及答案汇总(上)
1.题目描述
找出元素 item 在给定数组 arr 中的位置。
输出描述:
如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1。
示例1
输入
[ 1, 2, 3, 4 ], 3
输出
2
AC代码:
function indexOf(arr, item) {
if (Array.prototype.indexOf){
//判断是否支持indexOf, indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,考虑到原型继承中是否存在该方法。
return arr.indexOf(item);
} else {
for (var i = 0; i < arr.length; i++){
if (arr[i] === item){ //找到就返回在数组中的位置
return i;
}
}
}
return -1;//未找到就返回-1
}
2.数组求和
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
function sum(arr) {
var s = 0;
for (var i=arr.length-1; i>=0; i–) {
s += arr[i];
}
return s;
}
输入
[ 1, 2, 3, 4 ]
输出
10
AC代码:
function sum(arr) {
var s = 0;
for (var i=arr.length-1; i>=0; i–) {
s += arr[i];
}
return s;
}
3.移除数组中的元素
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4, 2], 2
输出
[1, 3, 4]
AC代码:
function remove(arr, item) { //不能改变原数组,
var a = [];
for(var i in arr){
if(arr[i]!=item)
a.push(arr[i]);
}
return a;
}
4.移除数组中的元素
题目描述
移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
示例1
输入
[1, 2, 2, 3, 4, 2, 2], 2
输出
[1, 3, 4]
AC代码:
5.添加元素
题目描述
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4], 10
输出
[1, 2, 3, 4, 10]
AC代码:
6.删除数组第一个元素
题目描述
删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4]
输出
[2, 3, 4]
AC代码:
7.查找重复元素
题目描述
找出数组 arr 中重复出现过的元素
示例1
输入
[1, 2, 4, 4, 3, 3, 1, 5, 3]
输出
[1, 3, 4]
AC代码:
8.避免全局变量
题目描述
给定的 js 代码中存在全局变量,请修复
修改:
解释:在Javascript语言中,声明变量使用的都是关键字var,如果不使用var而直接声明变量,则该变量为全局变量。
9.正确的函数定义
题目描述
请修复给定的 js 代码中,函数定义存在的问题
修改:
解释:else中的语句相当于将if中的function重写,因此无论flag为何值,返回的方法始终为重写后的方法。将方法赋值给一个变量,方法就不会被重写,因此才能得到正确的结果。
10.正确的使用 parseInt
题目描述
修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例
示例1
输入 ‘12’
输出 12
示例2
输入 ‘12px’
输出 12
示例3
输入 ‘0x12’
输出 0
源代码:
修改后AC代码:
解释:按10进制去处理字符串,碰到非数字字符,会将后面的全部无视。
我的个人博客地址:http://xiuchundu.github.io/ ,欢迎交流~~。