為JavaScript開發人員準備的 21 個小技巧(一)
為JavaScript開發人員準備的21個小技巧
----ViralPatel 2013-5-21
如果你平時總是需要寫很多的JavaScript程式碼,你會發現下邊列舉的程式碼段對你而言會非常有用,把它們儲存下來吧,將來你會用到的。
接下來就是為你準備的21個非常有用的程式碼段。
免責宣告:不是所有的程式碼段都是我寫的,它們中的某一些來自因特網。
1. 將JavaScript陣列轉化成 CSV(逗號分隔符值)
這是第一個小技巧,你有一個字串(或者數字)的JavaScript陣列,你想將它轉化成CSV,程式碼如下:
...........
上面程式碼可以看出,陣列的valueOf()方法,可以直接將一個陣列轉化成CSV串。
現在,如果你不想使用逗號而是使用豎線(|)作為分隔符,你可以呼叫陣列的 join() 方法來實現,看下面的程式碼:
// tip 1 :
function convert() {
var fruits = ['apple', 'peaches', 'oranges', 'mangoes'];
var str = fruits.valueOf();
alert(str);
}
function convert2() {
var fruits = ['apple', 'peaches', 'oranges', 'mangoes'];
var str = fruits.join("|");
alert(str);
}
convert();
convert2();
join() 方法將一個陣列轉化成豎線分隔的字串。
2. 將CSV轉化為JavaScript陣列
如果你想講CSV轉化為 JavaScript陣列,你該如何做呢?JavaScript陣列有一個方法來做這個事情。 split()方法可以將一個串通過任何指定的分隔符(比如逗號)切分成一個陣列。
下面我們將演示這個方法:
// tip 2:
function convert() {
var str = "apple, peaches, oranges, mangoes";
var fruitsArray = str.split(",");
alert('Array: '+fruitsArray);
}
convert();
3. 通過索引刪除陣列中的元素
你有一個JavaScript 陣列,現在你想通過指定索引的方式刪除其中某個元素。我們可以使用 splice() 方法來實現這個要求。這個方法可以往陣列中新增元素,也可以從陣列中刪除元素。我們先來看看刪除的操作:
// tip 3: function removeByIndex(arr, index) { arr.splice(index, 1); } function testRemove() { var test = ['Apple', 'Ball', 'Cat', 'Dog']; var old = ['Apple', 'Ball', 'Cat', 'Dog']; removeByIndex(test, 2); alert("Array before removing elements: "+old +"\nArray after removing elements: "+test); } testRemove();
譯者注:splice(index, num) 這種用法,指明從index位置開始,刪除num個元素,這個方法會直接在呼叫陣列上操作,如果刪除了元素(num > 0)則返回更新後的陣列,如果沒有刪除元素(num ===0) ,則返回一個空陣列([]) ;splice(index, num, element1, element2 ...) 這種用法,則 num 後面所有的元素均是需要插入的新的元素,所操作的流程就是,從index開始刪除num個原始元素,然後再在這個位置插入 element1,element2......如果你只想插入新的元素,則只需 num === 0 即可!注意,如果插入的是陣列,則該方法會以巢狀陣列的方式插入,不會講陣列展開!
4. 通過值匹配的方式從陣列中刪除元素
你有一個陣列,現在你想基於值(不是上述的索引)來刪除某元素:
// tip 4:
function removeByValue(arr, val) {
for(var i=0; i<arr.length; i++) {
if(arr[i] == val) {
arr.splice(i, 1);
break;
}
}
}
var somearray = ["mon", "tue", "wed", "thur"]
var oldBeforeRemoveByValue = ["mon", "tue", "wed", "thur"];
removeByValue(somearray, "tue");
alert("Array before removing elements: " + oldBeforeRemoveByValue
+"\n Array after removing elements : " + somearray);
上面我們就是通過定義了一個函式 removeByValue 來達到我們的目的。在JavaScript中,我們可以通過prototypes在執行時為某些類新增一些方法(雖然這個並不被提倡), 下面我們就為 JavaScript的Array類新增 removeByValue() 方法,這樣任何陣列都可以直接呼叫這個方法了:
Array.prototype.removeByValue = function(val) {
for(var i=0; i<this.length; i++) {
if(this[i] == val) {
this.splice(i, 1);
break;
}
}
}
var somearray = ["mon", "tue", "wed", "thur"];
var oldBeforeRemoveByValue = ["mon", "tue", "wed", "thur"];
somearray.removeByValue("tue");
alert("Array before removing elements: " + oldBeforeRemoveByValue
+"\n Array after removing elements : " + somearray);
5. 從一個串來呼叫JavaScript函式
有時,你知道一個函式的名稱,在執行期你想呼叫這個函式。假設這裡有一個函式 foo(),你想在執行時呼叫,這裡我們會給一個例子,來告訴你如何通過一個函式的名字來呼叫這個函式:
// tip 5:
function fooForFun(vals){
alert(vals);
return 1;
}
var functionName = "fooForFun";// something you get from the input of user or other places......
var theSpecialFun = window[functionName];
theSpecialFun("test");
6. 生成 1 到 N 的隨機數
下面的程式碼將幫助你產生 1 到 N的隨機數,這個程式碼在你的 JS 遊戲中或許有一些用處:
// tip 6: /** 生成 1 到 val 的一個隨機數 **/ function generateMyRandom(val){ var myRandom = Math.floor(Math.random() * val + 1); return myRandom; } alert(generateMyRandom(100));
7. 捕獲瀏覽器的關閉事件
這是一個常用的功能,你想要捕獲瀏覽器的關閉事件這樣你可以提醒使用者檢視頁面上是否有未儲存的資料,下面的JavaScript程式碼可以幫助你做到這個:
// tip 7:
function fnUnloadHandler() {
// Add your code here
alert("Unload event.. Do something to invalidate users session..");
}
/*
<body onbeforeunload="fnUnloadHandler()">
</body>
*/
這是前7個的翻譯,後面的會陸續翻譯好的,順便吐個槽,csdn寫部落格時貼程式碼的功能難道變弱了嘛!!!!???依稀記得以前貼程式碼沒有這麼噁心........
相關文章
- [譯] 優秀 JavaScript 開發人員應掌握的 9 個技巧JavaScript
- JavaScript開發技巧必備【一】JavaScript
- 為什麼 Web 開發人員需要學習一個 JavaScript 框架?WebJavaScript框架
- 2019年成為優秀的Java開發人員的10個技巧Java
- 作為JavaScript開發人員,這些必備的VS Code外掛你都用過嗎JavaScript
- 作為JavaScript開發人員,這些必備的VS Code外掛你都用過嗎?JavaScript
- 小程式開發前的準備工作
- 優秀的Java開發人員必備的6個技能!Java
- 【小程式】微信小程式開發準備微信小程式
- Web 開發人員備忘單Web
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 【metabase • 一】開發準備
- AI應用開發之路-準備:發起一個開源小專案 DashScope SDK for .NETAI
- 一個 15 年 SAP ABAP 開發人員分享的 SAPGUI 一些個性化設定和實用小技巧試讀版GUI
- 作為一技術人員,面試前都需要做哪些準備?面試
- 13 個Typescript 實用型別:開發人員的備忘單TypeScript型別
- 每個JavaScript開發人員都應該瞭解UnicodeJavaScriptUnicode
- Reflect API:每個 JavaScript 開發人員都需要的瑞士軍刀APIJavaScript
- 支付寶小程式開發準備工作
- Java開發人員必備Linux命令JavaLinux
- 一個SAP開發人員的養蠶流水帳
- 一個SAP開發人員的雙截棍之路
- JavaScript 中 JSON 的 5 個小技巧?JavaScriptJSON
- 9 個強大的 JavaScript 小技巧JavaScript
- 一個SAP開發人員的2019年終總結
- [20210113]給PB開發人員的一個建議.txt
- 一個SAP開發人員的2018年終總結
- Linux之父道歉後,Linux社群頒佈開發人員行為準則Linux
- 【譯】22個必備的CSS小技巧CSS
- 常用的一些javascript小技巧JavaScript
- 成為傑出Java開發人員的10個步驟 - DZoneJava
- TypeScript 之父:”開源是贏得 JavaScript 開發人員的唯一途徑“TypeScriptJavaScript
- 提升開發技能:10個高階的JavaScript技巧JavaScript
- 個人python面試準備的一些題型Python面試
- 蘋果為開發人員推送了macOS Big Sur 11.3的第一個Beta版本蘋果Mac
- 2010.03.16專題:一個開發人員的專案煩惱
- 製作遊戲人物頭部的21個小技巧遊戲
- postman 的一個小技巧!Postman
- 如何成為更好的軟體開發人員