1. 程式人生 > >#學習筆記#(30)牛客網JS測試題1~20題

#學習筆記#(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