String vs Array函數(shù)大比拼

  1. 長(zhǎng)度
    屬性對(duì)象.length
  • 字符串
var str = "abcd";
var strLength = str.length;// strLength為4
  • 數(shù)組
var arr = [1,2,3,4];
var arrLength = arr.length;// arrLength為4

注意修改字符串的length不會(huì)改變字符串的大小创南,但是修改數(shù)組的length會(huì)改變數(shù)組大小。
例如:

str.length = 1;// str的長(zhǎng)度還是4,值還是"abcd"
arr.length = 1;// arr的長(zhǎng)度變?yōu)?,值是[1]
  1. 訪問(讀與寫)
    對(duì)象[下標(biāo)]下標(biāo)是從0開始的。即第一個(gè)的下標(biāo)為0,后面的依次類推為1敢课,2,3绷杜,...
  • 字符串
var str = "abcd";
var c = str[3];// c為"d"
  • 數(shù)組
var arr = [1,2,3,4];
var num = arr[3];// arrLength為4

注意修改字符串的下標(biāo)不會(huì)改變字符串直秆,但是修改數(shù)組的下標(biāo)會(huì)改變數(shù)組。
例如:

str[2] = 1;// str的值還是"abcd"
arr[2] = 1;// arr的值是[1,2,1,4]
  1. 截取
  • 位置截取
    字符串.substring(起始下標(biāo),結(jié)束下標(biāo))
    字符串.slice(起始下標(biāo),結(jié)束下標(biāo))

    var str = "abcdef";
    var res1 = str.substring(2,4); // res1為cd
    var res2 = str.slice(2,4); // res2為cd
    var res3 = str.slice(-4,-2); // res3為cd
    

    注意:
    截取返回的字符串包含開始下標(biāo)的字符鞭盟,但是不包含結(jié)束下標(biāo)的字符圾结。
    slicesubstring靈活,可以使用負(fù)值下標(biāo)齿诉。
    數(shù)組.slice(起始下標(biāo),結(jié)束下標(biāo))

    var arr = [1,2,3,4,5,6];
    var res1 = arr.slice(2,4); // res1為[3,4]
    var res2 = arr.slice(-4,-2); // res2為[3,4]
    

    注意:截取返回的數(shù)組包含開始下標(biāo)的元素筝野,但是不包含結(jié)束下標(biāo)的元素晌姚。

  • 長(zhǎng)度截取
    字符串.substr(起始下標(biāo),截取長(zhǎng)度)

    var str = "abcdef";
    var res1 = str.substr(2,4); // res1為cdef
    var res2 = str.substr(2);   // res2為cdef
    

    注意:如果不指定截取的長(zhǎng)度,是從起始位置截取到結(jié)束歇竟。

    數(shù)組.splice(起始下標(biāo),截取長(zhǎng)度)

    var arr = [1,2,3,4,5,6];
    var res1 = arr.splice(2,4); // res1為[3,4,5,6] res為[1,2]
    

    注意:splice會(huì)把原來的數(shù)組截?cái)唷?/p>

  1. 連接concat
    連接函數(shù)對(duì)象.concat(對(duì)象)
  • 字符串連接
var str = "abc";
// 連接一個(gè)對(duì)象
var res1 = str.concat("d");// res1為"abcd"
// 連接多個(gè)對(duì)象
var res2 = str.concat("1","2")// res2為"abc12"

字符串更多使用+連接字符串挥唠。

  • 數(shù)組連接
var arr = [1,2,3];
// 連接一個(gè)值
var res1 = arr.concat(4);   //res1為[1,2,3,4]
// 連接多個(gè)值
var res2 = arr.concat(5,6); //res2為[1,2,3,5,6]
// 連接一個(gè)數(shù)組
var res3 = arr.concat([4,5]);   //res3為[1,2,3,4,5]
// 連接多個(gè)數(shù)組
var res4 = arr.concat([5,6],[7,8]); //res4為[1,2,3,5,6,7,8]

concat不會(huì)改變對(duì)象(例子中的str和arr)的值,只是生成一個(gè)新的對(duì)象作為返回值焕议。

  1. 查找
    從開始位置(0)查找元素首次出現(xiàn)的位置:對(duì)象.indexOf(查找元素)
    從指定的位置開始查找元素首次出現(xiàn)的位置:對(duì)象.indexOf(查找元素宝磨,查找的起始位置)
    從開始位置(0)查找元素最后出現(xiàn)的位置:對(duì)象.lastIndexOf(查找元素)
    從指定的位置開始逆向查找元素最后出現(xiàn)的位置:對(duì)象.lastIndexOf(查找元素,查找的起始位置)

    • 字符串
var str = "abcdabcd";
var res1 = str.indexOf("c");// res1值為2
var res2 = str.indexOf("e");// res2值為-1
var res3 = str.lastIndexOf("c");// res3值為6
var res4 = str.lastIndexOf("e");// res4值為-1
  • 數(shù)組
var arr = [1,2,3,4,1,2,3,4];
var res1 = arr.indexOf(3);// res1值為2
var res2 = arr.indexOf(5);// res2值為-1
var res3 = arr.lastIndexOf(3);// res3值為6
var res4 = arr.lastIndexOf(5);// res4值為-1

上面函數(shù)如果查找到返回找到元素的下標(biāo)号坡,反之懊烤,返回-1梯醒,表示未找到宽堆。

字符串的indexOf是原有函數(shù),數(shù)組的indexOf是ES5的新添加函數(shù), 兼容性IE9+

  1. 清空
    字符串清空字符串變量=""
    數(shù)組清空數(shù)組變量.length=0

  2. 轉(zhuǎn)換

  • 數(shù)組轉(zhuǎn)字符串數(shù)組.split(分割字符)
var arr = [1,2,3];
var res = arr.join(',');// res為字符串"1,2,3"
  • 字符串轉(zhuǎn)數(shù)組字符串.join(分割字符)
var str = "1,2,3";
var res = str.split(',');// res為字符串[1,2,3]

注意分割字符可以是任意字符串
例如:

var arr = [1,2,3];
var res = arr.join('-');// res為字符串"1-2-3"
var str = "1&2&3";
var res = str.split('&');// res為字符串[1,2,3]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茸习,一起剝皮案震驚了整個(gè)濱河市畜隶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌号胚,老刑警劉巖籽慢,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異猫胁,居然都是意外死亡箱亿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門弃秆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來届惋,“玉大人,你說我怎么就攤上這事菠赚∧员” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵衡查,是天一觀的道長(zhǎng)瘩欺。 經(jīng)常有香客問我,道長(zhǎng)拌牲,這世上最難降的妖魔是什么俱饿? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮塌忽,結(jié)果婚禮上拍埠,老公的妹妹穿的比我還像新娘。我一直安慰自己砚婆,他們只是感情好械拍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布突勇。 她就那樣靜靜地躺著,像睡著了一般坷虑。 火紅的嫁衣襯著肌膚如雪甲馋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天迄损,我揣著相機(jī)與錄音定躏,去河邊找鬼。 笑死芹敌,一個(gè)胖子當(dāng)著我的面吹牛痊远,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氏捞,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碧聪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了液茎?” 一聲冷哼從身側(cè)響起逞姿,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捆等,沒想到半個(gè)月后滞造,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栋烤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年谒养,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片明郭。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡买窟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出达址,到底是詐尸還是另有隱情蔑祟,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布沉唠,位于F島的核電站疆虚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏满葛。R本人自食惡果不足惜径簿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘀韧。 院中可真熱鬧篇亭,春花似錦、人聲如沸锄贷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至柔昼,卻和暖如春哑芹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捕透。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工聪姿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乙嘀。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓末购,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親虎谢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盟榴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容