JavaScript基礎50題整理

2021-07-23 01:45:24 字數 3699 閱讀 4493

一、陣列

1. 查詢陣列元素位置

function indexof(arr, item)  else }

}return -1; }

2.陣列求和

function(arr) );

};

function sum(arr)

3.移除陣列中的元素

移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列

不改變原陣列:

function remove(arr, item) ); }

改變原陣列:

function removewithoutcopy(arr, item) }

return arr; }

4. 新增元素 item(concat不會改變原陣列)(堆方法pop/push和棧方法shift/unshift都會改變原陣列)

在開頭function prepend(arr, item)

function prepend(arr, item)

在結尾function(arr, item) ;

return arr.concat(item) }

4.刪除陣列最後乙個元素

function truncate(arr)

function truncate(arr)

5.刪除陣列第乙個元素

function curtail(arr)

function curtail(arr)

function curtail(arr) ); }

6. 陣列合併

合併陣列 arr1 和陣列 arr2。不要直接修改陣列 arr,結果返回新的陣列

function concat(arr1, arr2)

7. 新增元素

在陣列 arr 的 index 處新增元素 item。不要直接修改陣列 arr,結果返回新的陣列

function insert(arr, item, index)

8. 計數

統計陣列 arr 中值等於 item 的元素出現的次數

function count(arr, item) );

return count; }

function count(arr, item) ).length }

9.查詢重複元素

找出陣列 arr 中重複出現過的元素

function duplicates(arr)

});return result; }

function duplicates(arr)

b[arr[i]]++; }

//遍歷b陣列,將其中元素值大於1的元素下標存入a陣列中

for(var i = 0; i < b.length; i++) }

return a; }

10. 求二次方

為陣列 arr 中的每個元素求二次方。不要直接修改陣列 arr,結果返回新的陣列

function square(arr) ) }

11.查詢元素位置

在陣列 arr 中,查詢值與 item 相等的元素出現的所有位置

function findalloccurrences(arr, target)

return array; }

function findalloccurrences(arr, target)

return a; }

二、函式

1.函式傳參

將陣列 arr 中的元素作為呼叫函式 fn 的引數

function argsasarray(fn, arr)

2. 函式的上下文

將函式 fn 的執行上下文改為 obj 物件

function speak(fn, obj)

3. 返回函式

實現函式 functionfunction,呼叫之後滿足如下條件:

1、返回值為乙個函式 f

2、呼叫返回的函式 f,返回值為按照呼叫順序的引數拼接,拼接字元為英文逗號加乙個空格,即 ', '

3、所有函式的引數數量為 1,且均為 string 型別

function functionfunction(str)

return f; }

4. 使用閉包

實現函式 makeclosures,呼叫之後滿足如下條件:

1、返回乙個函式陣列 result,長度與 arr 相同

2、執行 result 中第 i 個函式,即 result[i](),結果與 fn(arr[i]) 相同

function makeclosures(arr, fn) (e));

});return result; }

5.二次封裝函式

已知函式 fn 執行需要 3 個引數。請實現函式 partial,呼叫之後滿足如下條件:

1、返回乙個函式 result,該函式接受乙個引數

2、執行 result(str3) ,返回的結果與 fn(str1, str2, str3) 一致

function partial(fn, str1, str2)

return result; }

6. 使用 arguments

函式 usearguments 可以接收 1 個及以上的引數。

請實現函式 usearguments,返回所有呼叫引數相加後的結果。本題的測試引數全部為 number 型別,不需考慮引數轉換。

function usearguments()

function usearguments() ) }

實現函式 callit,呼叫之後滿足如下條件

1、返回的結果為呼叫 fn 之後的結果

2、fn 的呼叫引數為 callit 的第乙個引數之後的全部引數

function callit(fn)

function callit(fn)

8. 二次封裝函式

實現函式 partialusingarguments,呼叫之後滿足如下條件:

1、返回乙個函式 result

2、呼叫 result 之後,返回的結果與呼叫函式 fn 的結果一致

3、fn 的呼叫引數為 partialusingarguments 的第乙個引數之後的全部引數以及 result 的呼叫引數

function partialusingarguments(fn)

return result; }

9. 柯里化

已知 fn 為乙個預定義函式,實現函式 curryit,呼叫之後滿足如下條件:

1、返回乙個函式 a,a 的 length 屬性值為 1(即顯式宣告 a 接收乙個引數)

2、呼叫 a 之後,返回乙個函式 b, b 的 length 屬性值為 1

3、呼叫 b 之後,返回乙個函式 c, c 的 length 屬性值為 1

4、呼叫 c 之後,返回的結果與呼叫 fn 的返回值一致

5、fn 的引數依次為函式 a, b, c 的呼叫引數

function curryit(fn) }

function curryit(fn) ;

};}; }

function curryit(fn)

return curry3; }

return curry2; }

return curry1; }

三、

hdu oj最基礎50題(2000 2009題)

題目位址 本博文旨在幫助部分跨考生從初試踏入複試,大家加油hhhhh 本內容編寫過程中僅使用最基本的c語言知識,不使用c 庫 include include 交換 void swap int x,int y 陣列分割為2部分 intpatition char a,int low,int high 如...

hdu oj最基礎50題(2010 2019題)

題目位址 本博文旨在幫助部分跨考生從初試踏入複試,大家加油hhhhh 本內容編寫過程中僅使用最基本的c語言知識,不使用c 庫 include include include intmain if cnt 0 printf no n else return0 include include inclu...

hdu oj最基礎50題(2030 2039題)

題目位址 本博文旨在幫助部分跨考生從初試踏入複試,大家加油hhhhh 本內容編寫過程中僅使用最基本的c語言知識,不使用c 庫 include include include intmain cnt cnt 2 printf d n cnt return0 include include includ...