本篇將會對js數組和字串以及函數進行講解。
陣列方法裡push、pop、shift、unshift、join、split分別是什麼作用
push:在陣列最後加上一個元素,語法是陣列.push (要加入的元素) ;,傳回值為陣列長度
pop: 刪除陣列最後一個元素,語法為陣列.pop( );傳回值為刪除的元素名稱
shift:刪除陣列第一個元素,語法為數組.shift( );返回值為刪除的元素名稱
unshift:在數組首位添加一個元素,後面元素向後偏移,語法為數組.unshift (所要添加的元素); ,傳回值為陣列長度
join:將陣列連接為字串,不修改原本的陣列,語法為陣列.join(),傳回值為連接完成的字串
split : 將字串分隔並變成數組,不修改原本的字串,語法為字串.split('分隔符號');
程式碼:
用splice 實作push、pop 、shift、unshift 方法
splice實作push:
new1
[91, 3, 2, 1, 34, 5] //new1數組的元素new1.splice(new1. length,0,91) //new1.length代表數組最後一位後面,0為關鍵字添加,91為所要添加元素[]
new1
[91, 3, 2, 1, 34, 5, 91] //成功在陣列new1最後加上元素91
用splice實作pop:
new1
[91, 3, 2, 1, 34 , 5, 9, 91] //new1陣列的元素new1.splice(new1.length-1,1) //new1.length代表陣列最後一位,1為長度[91]
new1
[91, 3, 2, 1, 34, 5, 9] //成功刪除最後一位元素91
splice實現shift:
new1 91, 3, 2, 1, 34, 5, 645] //new1數組的元素new1.splice(0,1) //0代表數組下標索引數,1代表刪除個數[91] 的元素new1
[3, 2, 1, 34, 5, 645] # ##[3, 2, 1, 34, 5, 645] //new1陣列的元素new1.splice(0,0,91) //第一個0代表陣列下標索引數,第二個0為關鍵字添加,91為要添加的元素[]
new1
使用陣列拼接出如下字串
var prod = { name: '女装', styles: ['短款', '冬季', '春装'] };function getTp(data){ var new1 = prod.name; var new2 = prod.styles; var arrey =[]; arrey.push('<dl class="product">'); arrey.push("<dt>"+new1+"</dt>"); for(var i =0;i<new2.length;i++){ arrey.push("<dd>"+new2[i]+"</dd>") } arrey.push('</dl>'); console.log(arrey.join()); } getTp(prod)//<dl class="product">,<dt>女装</dt>,<dd>短款</dd>,<dd>冬季</dd>,<dd>春装</dd>,</dl>
寫一個find函數,實作下面的功能
var arr = [ "test" , 2 , 1.5 , false ]function find(arr,add){ for(var i = 0;i < arr.length; i++){ if(add==arr[i] && add !== 0){ return console.log(i) } } console.log(-1) } find(arr, "test") // 0find(arr, 2) // 1find(arr, 0) // -1
寫一個函數filterNumeric,實作如下函數
arr = ["a", 1,3,5, "b", 2];var arre = [];function filterNumeric(arr){ for(var i= 0; i< arr.length;i++){ if(typeof arr[i]==='number'){ arre.push(arr[i]) } } console.log(arre); } filterNumeric(arr) //[1, 3, 5, 2]物件obj有個className屬性,裡面的值為的是空格分割的字串(和html元素的class特性類似),寫addClass、removeClass函數,有以下功能:
var obj = { className: 'open menu'}; var shu = obj.className.split(" "); function addClass(obj,nano){ for(var i = 0;i< shu.length; i++) { if(shu[i] === nano) { return console.log("因为"+nano+"已经存在,此操作无任何办法"); } } shu.push(nano); //console.log(shu); obj.className = shu.join(" "); console.log(obj); } addClass(obj, 'new'); //Object {className: "open menu new"}addClass(obj, 'open'); //因为open已经存在,此操作无任何办法addClass(obj, 'me'); // Object {className: "open menu new me"}console.log(obj.className); // open menu new mefunction removeClass(obj,habo){ //console.log(shu) for(var i = 0;i<shu.length;i++){ if(shu[i] === habo) { shu.splice(i,1); } } obj.className = shu.join(' '); console.log(obj); } removeClass(obj,"open"); //Object {className: "menu new me"}removeClass(obj, 'blabla'); //Object {className: "menu new me"}寫一個camelize函數,把my-short-string形式的字串轉換myShortString形式的字串
function camelize(lama){ var lala = lama.split("-"); //["list", "style", "image"] var a =[lala[0]]; for(var i =1; i<lala.length; i++) { var num =lala[i][0].toUpperCase(); //"S", "I" var b = lala[i].replace(lala[i][0],num) a.push(b) }console.log(a.join("")) } camelize("background-color") //"backgroundColor"camelize("list-style-image") //"listStyleImage""如下程式碼輸出什麼?為什麼?
arr = ["a", "b"]; arr.push( function() { alert(console.log('hello hunger valley')) } ); arr[arr.length-1]() //輸出的是function函數的內容'hello hunger valley'並彈出視窗顯示underfined。因為第二段直接將整個函數加到數組arr後面成為它最後一個元素,最後一句代表將arr數組的最後一個元素執行調用,console.log執行完會銷毀,所以打印結果為'hello hunger valley',而彈窗結果為underfined寫一個函數filterNumericInPlace,過濾數組中的數字,刪除非數字
arr = ["a", 1 , 3 , 4 , 5 , "b" , 2];function filterNumericInPlace(arr){ for(var i= 0; 0< arr.length; i++) { if( typeof arr[i] !== 'number'){ arr.splice(i,1) } } console.log(arr); // [1,3,4,5,2]} filterNumericInPlace(arr);寫一個ageSort函數實現如下功能
var john = { name: "John Smith", age: 23 };var mary = { name: "Mary Key", age: 18 };var bob = { name: "Bob-small", age: 6 };var people = [ john, mary, bob ];function ageSort(data){ data.sort(function (a,b){ return a.age-b.age; }) console.log(data); } ageSort(people); // [ bob, mary, john ]寫一個filter (arr, func)函數用於過濾數組,接受兩個參數,第一個是要處理的數組,第二個參數是回調函數(回呼函數遍歷接受每一個數組元素,當函數返回true時保留該元素,否則刪除該元素)
function isNumeric (el){ return typeof el === 'number'; } arr = ["a",3,4,true, -1, 2, "b"];function filter(arr, func){ for(var i =0;i<arr.length;i++){ if(!func(arr[i])){ arr.splice(i,1); } } return arr; } arr = filter(arr, isNumeric) ;console.log(arr); arr = filter(arr,function(val){ return val > 0});console.log(arr); [3, 4, -1, 2] [3, 4, 2]字串寫一個ucFirst函數,傳回第一個字母為大寫的字元
function ucFirst(daho){ var add= daho[0].toUpperCase(); daho=daho.replace(daho[0],add) console.log(daho); } ucFirst("hunger")"Hunger"寫一個函數truncate(str, maxlength ), 如果str的長度大於maxlength,會把str截斷到maxlength長,並加上...,如
function truncate(str, maxlength){ if(str.length-1>maxlength){ add = str.substr(0,maxlength); console.log(add+"..."); }else{ return console.log(str); } } truncate("hello, this is hunger valley,", 10) truncate("hello world", 20)"hello, thi...""hello world"數學函數寫一個函數limit2,保留數字小數點後兩位,四捨五入, 如:
var num1 = 3.456;function limit2(num){ num=Math.round(num*100)/100; console.log(num); } limit2(num1) limit2(2.42)3.462.42寫一個函數,獲取從min到max之間的隨機數,包括min不包括max
function habo(min,max){ console.log(Math.random()*(min-max)+max) } habo(5,15)寫一個函數,獲取從min都max之間的隨機整數,包括min包含max
function habo(min,max){ add = Math.random()*(min-max)+max; console.log(Math.round(add)); } habo(5,12)寫一個函數,取得一個隨機數組,數組中元素為長度為len,最小值為min,最大值為max(包含)的隨機數
function damo(len,min,max){ arr=[]; len == arr.length; for(var i =0;i<len;i++){ arr.push(Math.round(Math.random()*(min-max)+max)); } console.log(arr) } damo(5,18,70) [53, 34, 43, 43, 33]本篇對JS數組、字串及數學函數相關內容進行了講解,更多相關知識請關注php中文網。 相關推薦:
關於JS時間物件和遞歸問題
一些CSS樣式基礎知識以上是JS數組、字串及數學函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器