avaScript代碼與HTML+CSS一起實現動態網頁的效果,那如何將JavaScript代碼嵌入到HTML代碼中呢,下面我們用HBuilder編輯器來講解3種引入方式:
1. 使用<script>..…</script>標簽對
將js代碼直接寫在script標簽對里。Script標簽既可以寫在head標簽里面也可以寫在body標簽里面。
注意:
如果JavaScript代碼放置于<head>標簽中:主要用于完成所需的后臺任務
如果JavaScript代碼置于<body>標簽中,用于顯示內容。
2. 引入外部的JavaScript文件
這種方式一般在企業工作中會用的多,因為保證了js代碼和html代碼的分別獨立,相互干擾性小(低耦合)。
mylife.js文件如下:直接寫入js代碼,js文件中一定不能再出現<script>..…</script>b標簽對!
3. 偽URL引入
這種方式一般以“JavaScript: XXXXX”的格式出現,后面直接跟js代碼。
如果你想了解更多“JavaScript”方面的知識,請持續關注我:吉爾JIL程序員,歡迎想學習的朋友咨詢我!
在前端面試題中,關于Javascript的部分是至關重要的,最近的一系列文章都是Javascript面試題相關的,大家可以自己實現一下,我也將題目和答案開源了,感興趣的可以自取。
Javascript
今天這篇文章里的題目是這樣的,如何找出一個數組中出現次數最多是元素?例如給定一個數組
[3, 5, 6, 5, 9, 8, 10, 5, 7]
其中5出現的次數最多,結果返回5,而且其出現次數為3。接下來我們就一起來看看這道題目的幾種實現方式。
以下是github地址,大家可以直接去看源碼。
https://github.com/zhouxiongking/article-pages/blob/master/articles/maxFrequencyNum/maxFrequencyNum.js
實現方法1的主要思想是利用鍵值對存儲,我們可以分解為兩個步驟。
定義一個對象,在遍歷數組的時候,將數組元素作為對象的鍵,將出現的次數作為值
獲取鍵值對后進行遍歷,獲取值最大的那個元素,返回后即可得到結果。
通過以上的思想,我們可以得到以下實現代碼。
方法1
因為方法1會首先對數組進行遍歷,然后對對象進行遍歷,在實現效率上比較低下,不推薦使用。
實現方法2的主要思想同方法1,不過是方法1的優化,將方法1中的兩次遍歷縮減為一次遍歷,將值的判斷放在同一個遍歷中。
得到的優化代碼如下。
方法2
方法3的主要思想是借助數組Array的reduce方法。
首先我們來看看reduce方法的使用方法,它的語法如下。
arr.reduce([callback, initialValue])
reduce方法接收的第一個參數為函數,操作數組中的每個元素。該函數接收4個參數,每個參數的含義如下。
第一個參數表示上一次執行結果的回調,或者第二個參數提供的初始值
當前處理的元素值
當前處理元素的索引
處理的數組
reduce方法接收的第二個參數為提供處理元素的初始值,與上面的第一個參數有關。
在了解reduce方法后,我們可以直接看看下面的代碼。
方法3
其中reduce接收一個{}表示的初始值,p的初始值就是這個{},k就是每次執行的數組元素。在每次執行完后與maxNum進行比較,動態更新maxNum與maxEle值,最后獲得返回的結果。
方法4的主要思想是借助于字符串的replace方法,因此方法4主要適用于字符數組的運算。
首先將數組轉化為字符串,然后通過字符串的replace方法,接收處理函數,其他的原理與方法3一樣。
方法4
對于以上的每個方法,我都進行了測試,根據返回的結果來看都驗證了方法的正確性。
方法5其實是利用ES6語法以及逗號運算符進行的代碼優化,這個方法看起來代碼量很少,但是理解起來卻需要花費一定的功夫。建議先學習下ES6函數語法以及逗號運算符的相關知識。
方法5
今天這篇文章主要講解了,關于數組中如何找出頻率最大的元素以及出現的次數的幾種方法,對你有幫助嗎?
取javascript數組所有重復元素的索引的函數,js實戰經驗
一想到獲取js數組Array中元素的索引,一般情況下使用內置的函數indexOf()即可,但是indexOf()函數有個缺點,就是只能返回數組Array中匹配到的元素的第一個的索引,而不會獲取所有匹配到的元素的索引。那該怎么辦呢?
鄙人有些懶,不愛動腦筋,所以一開始是在網絡上搜索了許多的如何獲取javasciprt數組中重復元素的所有索引的相關函數的關鍵詞,然而并沒有找到相關的答案,然后只好乖乖地思考,自己設計了一個函數,如下:
function indexAll(arr, ele){
var indexlist = []
for( var i=0; i<arr.length; i++){
if(arr[i] == ele){indexlist.push(i);}
}
return indexlist;
}
var arr=[1,2,3,2,0,1]
var indexlist = indexAll(arr, 1)
document.write(indexlist)
——————————————————
代碼輸出:
0,5
笨鳥工具-璞玉天成,大器晚成
*請認真填寫需求信息,我們會在24小時內與您取得聯系。