【算法】牛客网前端编程(1-10题)

1.

//找出元素 item 在给定数组 arr 中的位置

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

}

2.

//计算给定数组 arr 中所有元素的总和 function sum(arr) { var sum=0; for(var i=0;i<arr.length;i++){ sum=sum+arr[i]; } return sum; }

3.

//移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组 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 数组上进行操作,并将结果返回 function removeWithoutCopy(arr, item) { var n=arr.length for(var i=0;i<n;i++){ if(arr[i]===item){ arr.splice(i,1); i--; } } return arr; }

5.

//在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组 function append(arr, item) { var newArr; newArr=arr.slice(0); newArr.push(item); return newArr; }

6.

//删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组 function truncate(arr) { return arr.slice(0,-1); }

7.

//在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组 function prepend(arr, item) { var newArr=[]; newArr.push(item); for(var i=0;i<arr.length;i++){ newArr.push(arr[i]); } return newArr; }

8.

//删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组 function curtail(arr) { var newArr=[]; newArr=arr.slice(0); newArr.shift(); return newArr; }

9.

//合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组 function concat(arr1, arr2) { var newArr=[]; newArr=arr1.slice(0); [].push.apply(newArr, arr2); return newArr; }

10.

//在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组 function insert(arr, item, index) { var newArr=[]; newArr=arr.slice(0,index); newArr.push(item); [].push.apply(newArr,arr.slice(index)); return newArr; }

经验分享 程序员 微信小程序 职场和发展