摘要:常常在開發(fā)中,會使用到很多數(shù)組和字符串的處理方法,這里列舉一些我常用到的一些,方便大家參考使用。數(shù)組轉(zhuǎn)化成字符串,原來的數(shù)組不變。將作為切割字符,結(jié)果存在一個字符串中。補(bǔ)充數(shù)字保留小數(shù),結(jié)果是字符串類型的。
數(shù)組方面常常在開發(fā)中,會使用到很多js數(shù)組和字符串的處理方法,這里列舉一些我常用到的一些,方便大家參考使用。
push:向數(shù)組尾部增加內(nèi)容,返回的是新數(shù)組的長度。
var arr = [1,2,3]; console.log(arr); var b = arr.push(4); console.log(b); console.log(arr); // [1, 2, 3] // 4 //表示當(dāng)前數(shù)組長度 // [1, 2, 3, 4]
與之相反的是pop, 在結(jié)尾刪除一個值,并返回刪除的值。
var arr = [1,2,3]; console.log(arr); arr.pop(); console.log(arr); // [1,2,3] //[1,2]
unshift :向數(shù)組開頭增加內(nèi)容,返回新數(shù)組的長度。
var c = arr.unshift(-1,0); console.log(arr); // [-1, 0, 1, 2, 3]
與之相反的是shift,在開頭刪除一個值,并返回刪除的值。
var d = arr.shift(); console.log(d); console.log(arr); // 1 // [2, 3]
toString:數(shù)組轉(zhuǎn)化成字符串,原來的數(shù)組不變。
console.log(arr); arr = arr.toString(); console.log(arr); // [1,2,3] //"1,2,3" 而不是"123"
concat:數(shù)組的拼接,參數(shù)可以是數(shù)組也可以一個接一個,原來的數(shù)組不變。
var arr = [1,2,3]; var b = arr.concat([1,2,3]); console.log(b); //[1,2,3,1,2,3]
join:(分隔符),每一項(xiàng)拿出來用指定的分隔符分開,不帶參數(shù)默認(rèn)為",",原來的數(shù)組不變。
var arr = [1,2,3]; var b = arr.join(""); console.log(b); //"123"
splice 和 slice
splice(x,y,z) 從x開始清除長度為y的元素,并用z替換。z類似于item1, ..., itemX這樣。原來的數(shù)組改變。
var arr = [1,2,3]; arr.splice(0,1,""); console.log(arr); // "["",2,3]"
當(dāng)不寫第三個數(shù)的時候,相當(dāng)于刪除功能!當(dāng)?shù)诙€為0時,相當(dāng)于添加功能!
詳解
刪除時,兩個參數(shù),第一個是開始位置,第二個是刪除長度。
插入時,三個參數(shù),第一個是插入位置(在之前插入),第二個是0,第三個是插入的內(nèi)容。
替換時,三個參數(shù),第一個是開始位置,第二個是刪除長度,第三個是替換的內(nèi)容
slice(x,y) :從x到y(tǒng)(不包括),并把新的內(nèi)容作為新的數(shù)組返回。原來的數(shù)組不變。
var b = arr.slice(0,1); // [1]
reverse: 將原來的數(shù)組倒過來排序,原來的數(shù)組改變。
var arr = [1,2,3]; arr.reverse(); console.log(arr); // [3,2,1]
sort:排序,可以實(shí)現(xiàn)由小到大,由大到小。基本的只能處理10以內(nèi),要額外的處理。原來的數(shù)組改變。
var arr = [1,3,2,50,23]; arr.sort(function(a,b) {return a - b ;}); //從小到大 console.log(arr); // [1,2,3,23,50] // 更換a和b的順序,就是從大到小。 //也可以這樣。 [{name:"張三",age:30},{name:"李四",age:24},{name:"王五",age:28}].sort(function(o1,o2){returno1.age-o2.age;}) // [{name: "李四",age: 24 },{name: "王五",age: 28},{name: "張三",age: 30 }]
再類似于forEach、filter、map、reduce等。
字符串charAt: 返回字符串的給定位置的字符串。
var arr = "abcdefg"; console.log(arr.length); console.log(arr.charAt(1)); console.log(arr[1]); // 7 // b // b
concat: 連接2個字符串。原來的不變。
var b = arr.concat("abc"); console.log(b); // "abcdefgcde"
substring、substr、slice 都可省略第二個參數(shù),表示持續(xù)到字符串結(jié)束。
substring(x,y) 返回從x到y(tǒng)(不包括y) 位置顛倒時,互換。
var s = arr.substring(1,3); console.log(s); // "bc"
substr(x,y) 返回從x開始的長度為y的字符串
var s = arr.substr(1,3); console.log(s); // "bcd"
slice(x,y) 返回從x到y(tǒng)(不包括y) 位置顛倒時,結(jié)果為空字符串
var s = arr.slice(1,3); console.log(s); var s = arr.slice(3,1); console.log(s); // bc // ""
trim : 去除兩端的空格,不影響之前的字符串
var arr = " abcdefg "; var a = arr.trim(); console.log(a); //abcdefg
半角全角空格、中英文空格、tab鍵一招根除。
toLowerCase 、toUpperCase :轉(zhuǎn)為大小寫,原來的不變。
var b = arr.toUpperCase(); console.log(b); //"ABCDEFG"
indexOf、lastIndexOf,確定一個字符串在另一個字符串中的第一次出現(xiàn)的位置,一個從頭部開始,一個從尾部開始。
var arr = "abccba"; var b = arr.indexOf("b"); console.log(b); // 1 var c = arr.lastIndexOf("c"); console.log(c); // 3
它們還可以接受第二個參數(shù),對于indexOf,表示從該位置開始向后匹配;對于lastIndexOf,表示從該位置起向前匹配。
split 將separate作為切割字符,結(jié)果存在一個字符串中。
var arr = "a b c c b a"; var b = arr.split(" "); console.log(b); // ["a", "b", "c", "c", "b", "a"]
為空時,相當(dāng)于字符串轉(zhuǎn)為了數(shù)組。
補(bǔ)充:數(shù)字:toFixed() 保留小數(shù),結(jié)果是字符串類型的!!。
var a = 1.1212; console.log(a.toFixed(2)); // 1.12
parseInt 和 parseFloat
var a = 024; console.log(parseInt(a,10)); // 24
字符串轉(zhuǎn)數(shù)字 parseInt
數(shù)字轉(zhuǎn)字符 toString or 數(shù)字 + ""
參考鏈接: 阮一峰的JavaScript 標(biāo)準(zhǔn)參考教程(alpha)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78473.html
摘要:相關(guān)系列前面分析了數(shù)組,現(xiàn)在看一下隊(duì)列和哈希表的實(shí)現(xiàn)。隊(duì)列是一個雙向鏈表,實(shí)現(xiàn)了一個隊(duì)列的操作邏輯。它們都將鏈表節(jié)點(diǎn)塞入數(shù)據(jù)結(jié)構(gòu)。對于常用的解決沖突的方法有線性探測二次探測和開鏈法等。 相關(guān)系列:http://www.codefrom.com/p/nginx 前面分析了ngx_array_t數(shù)組,現(xiàn)在看一下ngx_queue隊(duì)列和ngx_hash哈希表的實(shí)現(xiàn)。 ngx_qu...
摘要:默認(rèn)為如果為的話和一樣的效果下面將會更新所有匹配到的數(shù)據(jù)字段更新操作符用來指定一個鍵的值。語法當(dāng)對數(shù)組字段進(jìn)行更新時,且沒有明確指定的元素在數(shù)組中的位置,我們使用定位操作符標(biāo)識一個元素,數(shù)字都是以開始的。 MongoDB干貨篇之?dāng)?shù)據(jù)更新 原文地址 https://chenjiabing666.github... 常用的函數(shù) update(,,,),其中表示篩選的條件,是要更新的數(shù)據(jù) ...
摘要:在中有四種調(diào)用模式方法調(diào)用模式函數(shù)調(diào)用模式構(gòu)造器調(diào)用模式和調(diào)用模式。構(gòu)造一個的實(shí)例目標(biāo)就是結(jié)合前綴來調(diào)用的函數(shù),被稱為構(gòu)造函數(shù)。 久違的博文,貌似距離我上一篇也算是有些年歲(加班的日子真是度日如年啊T^T)了,所以呢,現(xiàn)在是時候回歸正道了,還是歡迎各位IT道友多多交(tu)流(cao)哈! 正文 首先,說到 JavaScript 函數(shù),我們就要先理解下一些很可能被忽視的小概念:函數(shù)對象...
摘要:創(chuàng)建一個新數(shù)組,包含原數(shù)組中所有的非假值元素。例如和都是被認(rèn)為是假值。 創(chuàng)建一個新數(shù)組,包含原數(shù)組中所有的非假值元素。例如false, null, 0, , undefined, 和 NaN 都是被認(rèn)為是假值。 以下是自己實(shí)現(xiàn)的compact() compact:(array)=>{ let result = [] //判斷參數(shù)是否是數(shù)組 如果不是...
摘要:最近打算去研究下的源碼,準(zhǔn)備把大部分方法都實(shí)現(xiàn)一遍。先自己寫,然后在對照源碼。第一個是將數(shù)組拆分成多個長度的區(qū)塊,并將這些區(qū)塊組成一個新數(shù)組。 最近打算去研究下lodash的源碼,準(zhǔn)備把大部分方法都實(shí)現(xiàn)一遍。先自己寫,然后在對照源碼。第一個是 chunk 將數(shù)組(array)拆分成多個 size 長度的區(qū)塊,并將這些區(qū)塊組成一個新數(shù)組。 如果array 無法被分割成全部等長的區(qū)塊,那么...
閱讀 3235·2021-11-08 13:21
閱讀 1213·2021-08-12 13:28
閱讀 1421·2019-08-30 14:23
閱讀 1941·2019-08-30 11:09
閱讀 853·2019-08-29 13:22
閱讀 2703·2019-08-29 13:12
閱讀 2564·2019-08-26 17:04
閱讀 2273·2019-08-26 13:22