【算法】牛客网前端编程(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; }