国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript 數(shù)組中的 indexOf 方法

468122151 / 3137人閱讀

摘要:數(shù)組方法大家再熟悉不過了,卻忽略了數(shù)組有這個(gè)方法我個(gè)人感覺。輸出因?yàn)槭菙?shù)組的第個(gè)元素,匹配到并返回下標(biāo)。輸出因?yàn)榇朔椒◤念^匹配直到匹配到時(shí)返回第一個(gè)數(shù)組元素的下表,而不是返回全部匹配的下標(biāo)。

最近項(xiàng)目遇到一個(gè)小問題代碼我會(huì)簡(jiǎn)化成小例子展示給大家。

用心看到最后會(huì)有收獲哈,基礎(chǔ)扎實(shí)的童鞋可以直接跳到數(shù)組類型使用。

說到 indexOf 大家并不陌生,判斷字符串是否包涵子字符串時(shí)特別常用(正則不熟練同學(xué)的利器)。

String 類型的使用

溫習(xí)一下大家熟知的字符串用法,舉個(gè)例子

let str = "orange";

str.indexOf("o");  //0
str.indexOf("n");  //3
str.indexOf("c");  //-1

這里 0 和 3 分別是 o 和 n 在字符串中出現(xiàn)的位置。起始下標(biāo)是 0。而 -1 代表未匹配。

曾經(jīng)有人問我為什么偏偏是 -1 不是 null 或者 undefined。你去問制定規(guī)則的人啊!一臉無奈。

大家看到這里感覺沒什么亮點(diǎn)啊,別急接著再來一個(gè)例子

let numStr = "2016";

numStr.indexOf("2");  //0
numStr.indexOf(2);  //0

看到這里有個(gè)小點(diǎn)就是 indexOf 會(huì)做簡(jiǎn)單的類型轉(zhuǎn)換,把數(shù)字轉(zhuǎn)換成字符串 "2" 然后再執(zhí)行。

Number 類型的使用

大家可能會(huì)想 number 類型有沒有 indexOf 方法因?yàn)闀?huì)做隱式轉(zhuǎn)換嘛!明確告訴大家沒有,上例子

let num = 2016;

num.indexOf(2);  //Uncaught TypeError: num.indexOf is not a function

非要對(duì) number 類型使用 indexOf 方法嘞?那就轉(zhuǎn)換成字符串咯,接著上例來寫

//二逼青年的寫法
num = "2016";
num.indexOf(2);  //0

//普通青年的寫法
num.toString().indexOf(2);  //0

//文藝青年的寫法
("" + num).indexOf(2);  //0

第一種寫法簡(jiǎn)單直接,對(duì)于已知的較短的數(shù)字也不是不可行。但是 num 變量針對(duì)不同數(shù)據(jù)是變化的時(shí)候,怎么辦呢?

第二種寫法最為常用,但對(duì)比第三種寫法長(zhǎng)了一點(diǎn)。哈哈,其實(shí)都可以,代碼潔癖的人喜歡第三種

Array 類型的使用

大家提起精神,大boss來了。

數(shù)組方法大家再熟悉不過了,卻忽略了數(shù)組有 indexOf 這個(gè)方法(我個(gè)人感覺)。

干說不練瞎扯淡,遇到了什么問題,注意點(diǎn)又在哪里?

let arr = ["orange", "2016", "2016"];

arr.indexOf("orange");  //0
arr.indexOf("o");  //-1

arr.indexOf("2016");  //1
arr.indexOf(2016);  //-1

這里沒把例子拆的那么細(xì),四個(gè)用例足以說明問題。

arr.indexOf("orange") 輸出 0 因?yàn)?"orange" 是數(shù)組的第 0 個(gè)元素,匹配到并返回下標(biāo)。

arr.indexOf("o") 輸出 -1 因?yàn)榇朔椒ú粫?huì)在每一個(gè)元素的基礎(chǔ)上再次執(zhí)行 indexOf 匹配。

arr.indexOf("2016") 輸出 1 因?yàn)榇朔椒◤念^匹配直到匹配到時(shí)返回第一個(gè)數(shù)組元素的下表,而不是返回全部匹配的下標(biāo)。

arr.indexOf(2016) 輸出 -1 注意:這里不會(huì)做隱式類型轉(zhuǎn)換。

既然坑已經(jīng)發(fā)現(xiàn)我們不妨刨根問底。去MDN官網(wǎng)一看究竟。對(duì)此話題感興趣的朋友可以直接跳轉(zhuǎn)到 Array.prototype.indexOf()

只想了解的朋友下面給大家官方的 Description。

indexOf() compares searchElement to elements of the Array using strict equality (the same method used by the === or triple-equals operator).

一目了然,這里用的是嚴(yán)格等于(===)。大家做類似判斷的時(shí)候多留意。不要誤認(rèn)為數(shù)字會(huì)轉(zhuǎn)成字符串,同理字符串也不會(huì)轉(zhuǎn)換成數(shù)字。

總結(jié)

小知識(shí)點(diǎn)積累,不作為深入討論的話題,因此這里沒有解釋 indexOf() 的第二個(gè)參數(shù),相信大家都知道第二個(gè)參數(shù)的作用,不知道的可以看這里String.prototype.indexOf(),然后結(jié)合上面數(shù)組的鏈接也看一下第二個(gè)參數(shù)。

文章出自 orange 的 個(gè)人博客 http://orangexc.xyz/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/87958.html

相關(guān)文章

  • JS專題之數(shù)組去重

    摘要:將元素作為對(duì)象的鍵,默認(rèn)鍵對(duì)應(yīng)的值為如果對(duì)象中沒有這個(gè)鍵,則將這個(gè)元素放入結(jié)果數(shù)組中去。 前言 數(shù)組去重在日常開發(fā)中的使用頻率還是較高的,也是網(wǎng)上隨便一抓一大把的話題,所以,我寫這篇文章目的在于歸納和總結(jié),既然很多人都在提的數(shù)組去重,自己到底了解多少呢。又或者是如果自己在開發(fā)中遇到了去重的需求,自己能想到更好的解決方案嗎。 這次我們來理一理怎么做數(shù)組去重才能做得最合適,既要考慮兼容性,...

    only_do 評(píng)論0 收藏0
  • Javascript數(shù)組系列二之迭代方法2

    摘要:該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí)的值。 今天我們來繼續(xù) Javascript 數(shù)組系列的文章,上文 《Javascript數(shù)組系列二之迭代方法1》 我們說到一些數(shù)組的迭代方法,我們?cè)陂_發(fā)項(xiàng)目實(shí)戰(zhàn)的過程中熟練的使用可以大大提高我們的開發(fā)效率以及數(shù)據(jù)的處理。接下來我們繼續(xù)來講解其他的一些迭代的方法。 天也黑了,時(shí)間也不早了,話不多說,擼起袖...

    fredshare 評(píng)論0 收藏0
  • JavaScript es5中的Array常用的forEach、map、filter、indexOf

    摘要:的的區(qū)別和相同之處就是數(shù)組的遍歷循環(huán),回調(diào)支持三個(gè)參數(shù),第個(gè)是遍歷的數(shù)組內(nèi)容第個(gè)是對(duì)應(yīng)的數(shù)組索引,第個(gè)是數(shù)組本身他是沒有返回值得,不需要再下面,更進(jìn)一步,除了接受一個(gè)必須的回調(diào)函數(shù)參數(shù),還可以接受一個(gè)可選的上下文參數(shù)改變回調(diào)函數(shù)里面 Array的forEach、map的區(qū)別和相同之處 forEach 1、 forEach就是數(shù)組的遍歷、循環(huán) ,回調(diào)支持三個(gè)參數(shù),第1個(gè)是遍歷的數(shù)組內(nèi)容;...

    xuexiangjys 評(píng)論0 收藏0
  • JavaScript數(shù)組知多少

    摘要:數(shù)組中的元素自動(dòng)前移,比慢的多。該方法接受一個(gè)返回值為布爾類型的函數(shù),對(duì)數(shù)組中得每個(gè)元素使用該函數(shù),如果對(duì)于所有的元素,該函數(shù)都返回則該方法返回。 數(shù)組的維基百科定義是: 在編程語言中,數(shù)組數(shù)據(jù)結(jié)構(gòu)(英語:array data structure),簡(jiǎn)稱數(shù)組(英語:Array),是一種數(shù)據(jù)結(jié)構(gòu),是數(shù)據(jù)元素(elements)的集合。元素可以通過索引來任意存取,索引通常是數(shù)字,用來計(jì)算元...

    Coding01 評(píng)論0 收藏0
  • JavaScript面向?qū)ο缶幊獭狝rray類型

    摘要:中并沒有明確的數(shù)組數(shù)據(jù)類型。返回?cái)?shù)組對(duì)象的原始值。專門用于篩選出數(shù)組中符合函數(shù)判斷條件的元素組成的心數(shù)組。專門用于對(duì)原數(shù)組中每個(gè)元素執(zhí)行相同的函數(shù)對(duì)象規(guī)定的操作。 概述 一維數(shù)組 數(shù)組是一個(gè)有序的數(shù)據(jù)集合,可以通過數(shù)組名稱和索引進(jìn)行訪問。JavaScript中并沒有明確的數(shù)組數(shù)據(jù)類型。 二維數(shù)組 數(shù)組是可以嵌套的,這就意味著一個(gè)數(shù)組可以作為一個(gè)袁旭被包含在另一個(gè)數(shù)組里面。利用JavaS...

    DirtyMind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<