javascript测试题和参考答案----试题源自牛客网

本文整理了牛客网上的一系列JavaScript编程题目,包括数组操作、字符串处理、逻辑判断等多个方面,每道题目都附带了参考代码和示例。通过这些题目,可以提升JavaScript编程技巧和理解。
摘要由CSDN通过智能技术生成

附上牛客网链接:
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]

参考代码


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值