#學習筆記#(30)牛客網JS測試題1~20題
1、題目描述
找出元素 item 在給定陣列 arr 中的位置輸出描述:
如果陣列中存在 item,則返回元素在陣列中的位置,否則返回 -1
輸入例子:
indexOf([ 1, 2, 3, 4 ], 3)
輸出例子:
2程式碼:
function indexOf(arr, item) { var index=-1; for(var i=0;i<arr.length;i++){ if(arr[i]==item) index=i; } return index; }
2、題目描述
計算給定陣列 arr 中所有元素的總和輸入描述:
陣列中的元素均為 Number 型別
輸入例子:
sum([ 1, 2, 3, 4 ])
輸出例子:
10程式碼:
function sum(arr) {
var sum=0;
for(var i=0;i<arr.length;i++)
sum+=arr[i];
return sum;
}
3、題目描述
移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
remove([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 陣列上進行操作,並將結果返回
輸入例子:
removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)
輸出例子:
[1, 3, 4]程式碼:
function removeWithoutCopy(arr, item) {
for(var i=0;i<arr.length;i++){
if(arr[i]==item){
arr.splice(i,1);
i--;
}
}
return arr;
}
5、題目描述
在陣列 arr 末尾新增元素 item。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
append([1, 2, 3, 4], 10)
輸出例子:
[1, 2, 3, 4, 10]程式碼:
function append(arr, item) {
var newarr=[];
for(var i=0;i<arr.length;i++){
newarr.push(arr[i]);
}
newarr[arr.length]=item;
return newarr;
}
6、題目描述
刪除陣列 arr 最後一個元素。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
truncate([1, 2, 3, 4])
輸出例子:
[1, 2, 3]程式碼:
function truncate(arr) {
newarr=[];
for(var i=0;i<arr.length-1;i++){
newarr.push(arr[i]);
}
return newarr;
}
7、題目描述
在陣列 arr 開頭新增元素 item。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
prepend([1, 2, 3, 4], 10)
輸出例子:
[10, 1, 2, 3, 4]程式碼:
function prepend(arr, item) {
var newarr=[];
newarr[0]=item;
for(var i=0;i<arr.length;i++){
newarr.push(arr[i]);
}
return newarr;
}
8、題目描述
刪除陣列 arr 第一個元素。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
curtail([1, 2, 3, 4])
輸出例子:
[2, 3, 4]程式碼:
function curtail(arr) {
var newarr=[];
for(var i=1;i<arr.length;i++){
newarr.push(arr[i]);
}
return newarr;
}
9、題目描述
合併陣列 arr1 和陣列 arr2。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
concat([1, 2, 3, 4], ['a', 'b', 'c', 1])
輸出例子:
[1, 2, 3, 4, 'a', 'b', 'c', 1]程式碼:
function concat(arr1, arr2) {
var newarr=[];
for(var i=0;i<arr1.length;i++)
newarr.push(arr1[i]);
for(var i=0;i<arr2.length;i++)
newarr.push(arr2[i]);
return newarr;
}
10、題目描述
在陣列 arr 的 index 處新增元素 item。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
insert([1, 2, 3, 4], 'z', 2)
輸出例子:
[1, 2, 'z', 3, 4]程式碼:
function insert(arr, item, index) {
var newarr=[];
for(var i=0;i<arr.length;i++){
newarr.push(arr[i]);
}
newarr.splice(index,0,item);
return newarr;
}
11、題目描述
統計陣列 arr 中值等於 item 的元素出現的次數輸入例子:
count([1, 2, 4, 4, 3, 4, 3], 4)
輸出例子:
3程式碼:
function count(arr, item) {
var times=0;
for(var i=0;i<arr.length;i++){
if(arr[i]==item){
times++;
}
}
return times;
}
12、題目描述
找出陣列 arr 中重複出現過的元素輸入例子:
duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]).sort()
輸出例子:
[1, 3, 4]程式碼:
function duplicates(arr) {
var re=[];
arr.sort();
for(var i=1;i<arr.length;i++){
if(arr[i]==arr[i-1] && re.indexOf(arr[i])==-1){
re.push(arr[i]);
}
}
return re;
}
13、題目描述
為陣列 arr 中的每個元素求二次方。不要直接修改陣列 arr,結果返回新的陣列輸入例子:
square([1, 2, 3, 4])
輸出例子:
[1, 4, 9, 16]程式碼:
function square(arr) {
var newarr=[];
for(var i=0;i<arr.length;i++){
newarr[i]=arr[i]*arr[i];
}
return newarr;
}
14、題目描述
在陣列 arr 中,查詢值與 item 相等的元素出現的所有位置輸入例子:
findAllOccurrences('abcdefabc'.split(''), 'a').sort()
輸出例子:
[0, 6]程式碼:
function findAllOccurrences(arr, target) {
var currences=[];
for(var i=0;i<arr.length;i++){
if(arr[i]==target){
currences.push(i);
}
}
return currences;
}
15、題目描述
給定的 js 程式碼中存在全域性變數,請修復(在變數前加上var 即可)function globals() {
<span style="color:#ff0000;"> var</span> myObject = {
name : 'Jory'
};
return myObject;
}
16、題目描述
請修復給定的 js 程式碼中,函式定義存在的問題輸入例子:
functions(true)
輸出例子:
a程式碼:
function functions(flag) {
if (flag) {
var getValue=function() { return 'a'; }
} else {
var getValue=function() { return 'b'; }
}
return getValue();
}
17、題目描述
修改 js 程式碼中 parseInt 的呼叫方式,使之通過全部測試用例輸入例子:
parse2Int('12'); parse2Int('12px'); parse2Int('0x12')
輸出例子:
12; 12; 0程式碼:
function parse2Int(num) {
return parseInt(num,10);
}
18、題目描述
判斷 val1 和 val2 是否完全等同 程式碼:function identity(val1, val2) {
return val1 === val2 ;
}
19、題目描述
實現一個打點計時器,要求1、從 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一個數字,每次數字增幅為 1
2、返回的物件中需要包含一個 cancel 方法,用於停止定時操作
3、第一個數需要立即輸出 程式碼:
function count(start,end){
console.log(start);
var counter;
counter=setInterval(function(){
if(start<end){
console.log(++start);
}
},100);
var obj=new Object();
obj.cancel=function(){
clearInterval(counter);
}
return obj;
}
20、題目描述
實現 fizzBuzz 函式,引數 num 與返回值的關係如下:1、如果 num 能同時被 3 和 5 整除,返回字串 fizzbuzz
2、如果 num 能被 3 整除,返回字串 fizz
3、如果 num 能被 5 整除,返回字串 buzz
4、如果引數為空或者不是 Number 型別,返回 false
5、其餘情況,返回引數 num
輸入例子:
fizzBuzz(15)
輸出例子:
fizzbuzz程式碼:
function fizzBuzz(num) {
var str="";
if(typeof(num)=="number"){
if(num%3==0)
str+="fizz";
if(num%5==0)
str+="buzz";
if(num%3!=0 && num%5!=0)
str=num;
return str;
}else return false;
}
相關推薦
#學習筆記#(30)牛客網JS測試題1~20題
1、題目描述 找出元素 item 在給定陣列 arr 中的位置 輸出描述: 如果陣列中存在 item,則返回元素在陣列中的位置,否則返回 -1 輸入例子: indexOf([ 1, 2, 3,
(2016美團牛客網程式設計測試題)大富翁
/* 大富翁遊戲,玩家根據骰子的點數決定走的步數,即骰子點數為1時可以走一步,點數為2時可以走兩步,點數為n時可以走n步。求玩家走到第n步(n<=骰子最大點數且是方法的唯一入參)時,總共有多少種投骰子的方法。 輸入描述: 輸入包括一個整數n,(1 ≤ n ≤ 6
可持久化動態圖上樹狀陣列維護01揹包(牛客網的一道傻逼題)
題目 哈哈哈……題面已經告訴你做法了 這場比賽前無數名兩三分鐘就過了這道A題……當時看到題的時候笑抽我了…… 維護尼瑪的揹包,直接貪心啊…… 如果序列都是正數的話,每個數的刪除代價中的$i$為$1$當然是最優的。又因為要求刪除所有的數,所以這可以做到,每次刪除序列的第一個數就完了。 然後下意識地看了
牛客網研究生機試題刷題記錄
牛客網:清華大學 1.成績排序 這題我一開始採用的是排序演算法,排序最快的時間複雜度為O(nlogn)。所以這裡換一種思路,既然有100分,不如建立一個二維vector,在每一份的vector上push上姓名,這樣時間複雜度降到O(n)。 順便複習一下排序的時間代價和分類。
牛客網在線編程題——樹的高度(2)
有一個 兩種 turn lse 深度 while vector 構造二叉樹 出發 題目描述 現在有一棵合法的二叉樹,樹的節點都是用數字表示,現在給定這棵樹上所有的父子關系,求這棵樹的高度 輸入描述: 輸入的第一行表示節點的個數n(1 ≤ n ≤ 1000,節點的編號為0到
(組合數問題)牛客網Wannafly挑戰賽17 B題 求值2
連結:https://www.nowcoder.com/acm/contest/114/B 來源:牛客網 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 262144K,其他語言524288K 64bit IO Format: %lld 題目描述 An
牛客網 劍指offer_程式設計題—— 從尾到頭列印連結串列(C++)
輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。 C++ /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : *
牛客網 劍指offer_程式設計題—— 陣列中重複的數字(C++)
在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意一個重複的數字。 例如,如果輸入長度為7的陣列{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字2。 C++ class So
牛客網---資料庫實戰---1---查詢最晚入職員工的所有資訊
1、查詢最晚入職員工的所有資訊 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `las
牛客網——2017校招真題線上程式設計(python&C++)
牛客網——2017校招真題線上程式設計(python&C++)題目描述找出n個數裡最小的k個輸入描述:每個測試輸入包含空格分割的n+1個整數,最後一個整數為k值,n 不超過100。輸出描述:輸出
牛客網劍指offer程式設計題——從上往下列印二叉樹(Java)
解題思路:從上往下列印,則是父節點—>左子節點—>右子節點的順序,總的來說順序是很明確的,左子節點的子節點也優先於右子節點的子節點,所以只要從左往右依次遍歷左右子節點,子節點的子節點也能是順序排列的,佇列可以滿足該需求 程式碼如下:import java.ut
2018-4-19 牛客網-資料結構-佇列刷題
(2)二叉鏈儲存法也叫孩子兄弟法,左指標指向左孩子,右指標指向右兄弟。而中序遍歷的順序是左孩子,根,右孩子。這種遍歷順序與儲存結構不同,因此需要堆疊儲存中間結果。而中序遍歷檢索二叉樹時,由於其儲存結構跟遍歷順序相符,因此不需要用堆疊。
牛客網二叉樹程式設計題
樹的高度 #include <iostream> #include <vector> using namespace std; int main() { int n, H = 1; int f, c, h;
關於牛客網劍指offer程式設計題思路(棧和佇列篇)
相關題目來源 解題思路 1. 用兩個棧實現佇列 這道題阿里電話面試的時候問過,本來很簡單的,當時太不自信了qaq 首先一個stack是作為接受佇列的push輸入,另一個stack作為輸出pop,用效率比較高的方法是要pop的時候檢查一下stac
牛客網多校訓練 j題 (莫隊)
時間限制:C/C++ 2秒,其他語言4秒 空間限制:C/C++ 524288K,其他語言1048576K 64bit IO Format: %lld 題目描述 Given a sequence
牛客網Javascript專項練習錯題彙總
字串的拼接 console.log(1+ +"2"+"2"); console.log("A"- "B"+"2"); console.log("A"- "B"+2); console.log(1+ +”2”+”2”)中的第一個加號表示的是一元加操作符,+
牛客網 python (1)
1. python my.py v1 v2 命令執行指令碼,通過 from sys import argv如何獲得v2的引數值? sys.argv是傳遞給python指令碼的命令列引數【字串】列表 argv[0]為該指令碼自身路徑,其餘為命令列引數 2. 以”\0”結尾
牛客網學習筆記(20181021)
1.關於applet程式 (1)applet頁面剛開啟的時候,程式呼叫init(),然後呼叫start(),再然後呼叫paint(); (2)使用者離開applet頁面,程式自動呼叫stop(),使用者關閉瀏覽器,程式觸發destroy();
牛客網學習筆記(20181022)
本博文主要記錄個人在牛客網做專項練習遇到的重難點,若感興趣可自行練習!!! 網址為:https://www.nowcoder.com/intelligentTest 1、關於Java 中的集合類 (1) java中的集合類主要包括 ArrayList 、
牛客網學習筆記(20181023)
1.關於包裝類和基本型別 例: 包裝類建立變數:Integer i01=59 的時候,會呼叫 Integer 的 valueOf 方法, public static Integer valueOf(int i) { assert I