附上牛客网链接:
https://www.nowcoder.com/ta/js-assessment?page=1
最近有点不知所措,该用什么,该学什么;随意学起了javascript,就试着做了一下牛客网的试题,附上答案
- 1、查找数组元素位置
题目描述 找出元素 item 在给定数组 arr 中的位置 输出描述: 如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1
示例1: 输入 [ 1, 2, 3, 4 ], 3 输出 2
参考代码
function indexOf(arr, item) {
for(var i in arr)
{
if(arr[i] == item)
{
return i;
}
}
return -1;
}
- 2、数组求和
题目描述 计算给定数组 arr 中所有元素的总和 输入描述: 数组中的元素均为 Number 类型
示例1 输入 [ 1, 2, 3, 4 ] 输出 10
参考代码
function sum(arr) {
var value = 0;
for(var i in arr)
{
value += arr[i];
}
return value;
}
- 3、移除数组中的元素
题目描述 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入 [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 数组上进行操作,并将结果返回
示例1
输入 [1,2, 2, 3, 4, 2, 2], 2 输出 [1, 3, 4]
参考代码
重点留意一下i++在什么时候执行。
function removeWithoutCopy(arr, item) {
var i = 0;
while(i<arr.length)
{
if(arr[i]==item)
{
arr.splice(i, 1);
}else
{
i++;
}
}
return arr;
}
- 5、添加元素
题目描述
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1 输入 [1, 2, 3, 4], 10 输出 [1, 2, 3, 4, 10]
参考代码,留意不能直接用newarr=arr这样赋值,否则会改变arr数组
function append(arr, item) {
var newarr = arr.slice(0, arr.length);
newarr.push(item);
return newarr;
}
- 6、删除数组最后一元素
题目描述
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
示例1 输入 [1, 2, 3, 4] 输出 [1, 2, 3]
参考代码
function truncate(arr) {
return arr.slice(0, (arr.length>1)?(arr.length-1):0)
}
- 7、添加元素
题目描述
在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1 输入 [1, 2, 3, 4], 10 输出 [10, 1, 2, 3, 4]
参考代码
function prepend(arr, item) {
return [item].concat(arr);
}
- 8、删除数组第一个元素
题目描述
删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
示例1 输入 [1, 2, 3, 4] 输出 [2,3, 4]
参考答案
function curtail(arr) {
return arr.slice(1,arr.length);
}
- 9、数组合并
题目描述
合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
示例1 输入 [1, 2, 3, 4],[‘a’, ‘b’, ‘c’, 1] 输出 [1, 2, 3, 4, ‘a’, ‘b’, ‘c’, 1]
参考代码
function concat(arr1, arr2) {
return Array.prototype.concat(arr1, arr2);
}
- 10、添加元素
题目描述
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1 输入 [1, 2, 3, 4], ‘z’, 2 输出 [1, 2, ‘z’, 3, 4]
参考代码
function insert(arr, item, index) {
var newarr = arr.slice(0, arr.length);
newarr.splice(index, 0, item);
return newarr;
}
- 11、计数
题目描述
统计数组 arr 中值等于 item 的元素出现的次数
示例1 输入 [1, 2, 4, 4, 3, 4, 3], 4 输出 3
参考代码
function count(arr, item) {
var c = 0;
for(var i in arr)
{
if(item == arr[i])
{
c++;
}
}
return c;
}
- 12、查找重复元素
题目描述
找出数组 arr 中重复出现过的元素
示例1 输入 [1, 2, 4, 4, 3, 3, 1, 5, 3] 输出 [1, 3, 4]
参考代码