最近在梳理js的基礎,首先從陣列和字串開始。
string 常用方法:
1.substring(start開始位置的索引,end結束位置索引) 截取的位置不包含結束位置的字元,只寫一個參數表示從開始位置截取到最後
var str='abcdefg'; str.substring(1) //得到bcdefg str.substring(1,3) //得到bc
輸入負值時將負值變成0,哪一個較小為起始位置
str.substing(-1,1) =>str.substring(0,1) //a
str.substring(1,-2) =>str.substring(0,1) //a
2.slice(start開始位置索引,end結束位置索引) 基本和substring相似,區別在參數為負數。
var str='abcdefg'; str.slice(1) //bcdefg str.substring(1,3) // bc
輸入負值時值與字串的長度相加
str.slice(-1) =>str.slice(6),str =>str.slice(6) = str .slice(1,5) //bcde
str.slice(-2,-1)=>str.slice(5,6) //f
var str='abcdefg'; str.substr(1) //bcdefg str.substr(1,1) //b輸入負值時start參數與字串的長度相加,end為負時參數變為0
str.substr(-1) =>str.substr(6)//g str.substr(-2,-3) // ''4.charAt(index) 方法傳回指定索引位置處的字元。如果超出有效範圍(0與字串長度減一)的索引值傳回空字串.
var str='abcdefg'; str.charAt(2) // c5.index(string) 傳回String物件內第一次出現子字串位置。如果沒有找到子字串,則傳回-1。 var str='abcdefga' str.indexOf('a') // 0 str.indexOf('h') //-16.lastIndexOf(string) 倒敘問6.lastIndexOf(string) 倒敘問6.lastIndexOf(string) 倒敘出現子字串位置。如果沒有找到子字串,則傳回-1。 var str='abcdefga' str.lastIndexOf('a') // 77.split(str) 將字串以參數分割為陣列
var str='abcadeafg' ) //["", "bc", "de", "fg"]
8. toLowerCase方法傳回字串,字串中的字母轉換成小寫。
9. toUpperCase方法傳回一個字串,該字串中的所有字母都被轉換為大寫字母。
10.match() – 方法可在字串內檢索指定的值,或找到一個或多個正規表示式的匹配
11.search 方法傳回與正規表示式找出內容相符的第一個字串的位置。
12.replace 用來找出符合一個正規表示式的字串,然後使用新字串代替匹配
http://www.cnblogs.com/bijiapo/p/5451924.html
數組常用的方法
1. push 新增到最後 返回新增後的陣列
2. unshift 新增至最前面 移除新增後的陣列
4. pop 刪除最後一項返回處理後的陣列
5. reverse 陣列翻轉 返回處理後的陣列
6. join 陣列取數組從start(開始) 到end(結束不含)
,ele2....) 剪接陣列
(1) .一個參數 從參數位置截取填入負數類似上面str slice 回傳截好的陣列原數組變化
var arr=[1,2,3,4,5], str=arr.join('--'); console.log(str); // 1--2--3--4--5 以join内的参数切割数组 console.log(arr); // [1,2,3,4,5] 原数组未变
(2).二個參數 截取(開始位置,個數) 傳回截好的陣列陣列變化
var arr=[1,2,3,4,5],new=arr.slice(2,4); console.log(new); // [3,4] console.log(arr); // [1,2,3,4,5]
(3).添加 原始數組增加
var arr=[1,2,3,4,5]; console.log(arr.splice(1)); // [2,3,4,5] console.log(arr); // [1] console.lgo(arr.splice(-1)) // [5]
(4).替換
var arr=[1,2,3,4,5]; console.log(arr.splice(1,3)); // [2,3,4] console.log(arr) // [1,5] arr.splice(0,1) =>arr.shift() arr.splcie(arr.length-1,1) =>arr.pop() ).10. 其中的item參數是數組中的內容,index為其索引,array表示數組本身
var arr=[1,2,3,4,5]; console.log(arr.splice(1,0,13)); // [] console.log(arr); // [1,13,2,3,4,5]遇到嵌套方法循環出現問題,暫時沒有解決; 11. map
12. arr.sort 排序
var arr=[1,2,3,4,5]; console.log(arr.splice(1,2,'a','b')) // [2,3] console.log(arr); // [1,'a','b',4,5] arr.splice(0,0,1) =>arr.unshift(1); arr.splice(arr.length,0,1) => arr.push(1)
預設情況下sort方法是按ascii
預設情況下sort方法是按ascii
arr.sort(function(a,b){ return a-b})
a-b从小到大 b-a从大到小
13. 顺便写写我知道的排序方法
(1)冒泡排序 每次比较相邻的两个数,如果后一个数比前一个数小,换位置
function bSort(arr){ var tmp; for(var i=0,len=arr.length-1;i<len;i++){ for(var j=0;j<len;j++){ if(arr[j]>arr[j+1]){ //换位置 tmp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=tmp; } } } return arr; } function bSort(arr){ var tmp; arr.forEach(function(item,i){ arr.forEach(function(item,i){ if(item>arr[i+1]){ //换位置 tmp = arr[i + 1]; arr[i + 1] = arr[i]; arr[i] = tmp; } }) }) return arr }
(2)快速排序 二分法,找到中间的数,取出来(新数组),原数组没,每次和此数比较,小的放到左边,大的放到右面
function fastSoft(arr){ var len=arr.length; if(len<=1){ return arr} var cIndex=Math.floor(len/2), c=arr.splice(c,1), left=[], right=[]; arr.forEach(function(item,i){ if(item<c[0]){ left.push(item); }else{ right.push(item); } }) return fastSoft(left).concat(c,fastSoft(right)); }
14. 数组的去重也写下吧
(1)双层循环不是很好
var arr=[2,3,2,2,2,4,5], arr2=[]; function find(arr2,ele){ for(var i= 0,len=arr2.length;i<len;i++){ if(arr2[i]==ele) return true; } return false; } for(var i= 0,len=arr.length;i<len;i++){ if(!find(arr2,arr[i])){ arr2.push(arr[i]); } }
(2)利用json的key值无重复
var arr=[2,3,2,2,2,4,5], json={}, arr2=[]; arr.forEach(function(item,i){ if(!json[item]){ json[item]=222; } }); for(var name in json){ arr2.push(Number(name));//类型发生变化了 }
(3) 利用sort方法排序,去掉旁边相同项
var arr=[2,3,2,4,4,4,5], arr2=[]; arr.sort(); for(var i=0;i<arr.length;i++){ if(arr[i]==arr[i+1]){ arr.splice(i--,1); } }
一些常见数学方法
math.abs() 取绝对值 math.ceil() 向上取整 math.floor() 向下取整 math.round() 四舍五入 math.roundom function getRan(n,m){ return Math.floor(Math.random()*(m-n)+n); }
数组和字符串的一些综合应用
1. 截取后缀名
(1) var str='1.xxx.avi';
str=str.substring(str.lastIndexOf('.')+1);
(2) var str='1.xxx.avi';
var arr=str.split('.'); console.log(arr[arr.length-1]);
2.字母翻转,首字母大写
var str='wo shi yi ge demo', arr=str.split(' '); for(var i=0;i<arr.length;i++){ console.log() arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1); } arr.reverse(); str=arr.join(' ');
3. str中字符出现次数的统计
var str='aaaandkdffsfsdfsfssq12345', json={}, n= 0, sName; for(var i= 0,len=str.length;i<len;i++){ var Letter=str.charAt(i); //统计次数 if(json[Letter]){ json[Letter]++; }else{ json[Letter]=1; } } //找最大 for(var name in json){ if(json[name]>n){ n=json[name]; sName=name; } } console.log('出现最多的字母'+sName+'次数为'+n);
4. 简单的url参数解析
function getData() { var search = window.location.search.substring(1); if (!search) { return; } var arr = search.split('&'), arr2 = [], json = {}, key, alue; for (var i = 0; i < arr.length; i++) { arr2 = arr[i].split('='); key = arr2[0]; value = arr2[1]; json[key] = value; } return json; }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持PHP中文网!
更多js数组与字符串常用方法总结相关文章请关注PHP中文网!

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

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

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

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

Dreamweaver CS6
視覺化網頁開發工具