国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Javascript中七種方法在Array中查找指定項

開發(fā) 前端
在Javascript中有很多方法可以實現(xiàn)查詢在一個array中是否包含一個元素。當(dāng)然可以使用for循環(huán)或者Array.indesOf()方法。現(xiàn)在,ES6添加了一些更有用的方法在array中搜索我們想要的結(jié)果。

在Javascript中有很多方法可以實現(xiàn)查詢在一個array中是否包含一個元素。當(dāng)然可以使用for循環(huán)或者Array.indesOf()方法。現(xiàn)在,ES6添加了一些更有用的方法在array中搜索我們想要的結(jié)果。

[[434551]]

indexof()方法

確定array中是否包含某個元素的最快的,最簡單方法就是使用array.indexof()。這個方法檢查array是否包含某個指定的元素,返回它的index,如果不包含,返回-1。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:13 const apple = array1.indexOf("蘋果"
  3. 測試文件.html:14 結(jié)果: 0 
  4. 測試文件.html:15 ---------------------------- 
  5. 測試文件.html:18 array1: (5) ['蘋果''李子''栗子''柿子''梨'
  6. 測試文件.html:19 const lizi = array1.indexOf("李子"
  7. 測試文件.html:20 結(jié)果 1 
  8. 測試文件.html:21 ---------------------------- 

 默認情況下,indexof從array的第一個元素開始搜索,在最后一個元素結(jié)束。你可以傳入第二個參數(shù),指定開始元素的index(0開始)。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:25 const lizi1 = array1.indexOf("李子",1) 
  3. 測試文件.html:26 結(jié)果 1 
  4. 測試文件.html:27 ---------------------------- 
  5. 測試文件.html:30 array1: (5) ['蘋果''李子''栗子''柿子''梨'
  6. 測試文件.html:31 const lizi2 = array1.indexOf("李子",2) 
  7. 測試文件.html:32 結(jié)果 -1 
  8. 測試文件.html:33 ---------------------------- 
  9. 測試文件.html:36 array1: (5) ['蘋果''李子''栗子''柿子''梨'
  10. 測試文件.html:38 const shizi = array1.indexOf("柿子",2) 
  11. 測試文件.html:39 結(jié)果: 3 
  12. 測試文件.html:40 ---------------------------- 

需要注意的是,indexof返回第一個搜索到的結(jié)果,也就是array中第一個出現(xiàn)的元素的index。

lastIndexOf()方法

Javascript還提供了一個lastIndexOf()方法,顧名思義,它從array的最后一個元素開始搜索,在第一個元素停止。返回第一個搜索到的元素的index,也就是array中最后一次出現(xiàn)的元素的index。同樣,也可以傳入第二個參數(shù),跳過一些搜索的元素。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:44 const shizi1 = array1.lastIndexOf("柿子"
  3. 測試文件.html:45 結(jié)果: 3 
  4. 測試文件.html:46 ---------------------------- 
  5. 測試文件.html:49 array1: (5) ['蘋果''李子''栗子''柿子''梨'
  6. 測試文件.html:51 const lianpen = array1.lastIndexOf("臉盆"
  7. 測試文件.html:52 結(jié)果: -1 
  8. 測試文件.html:53 ---------------------------- 
  9. 測試文件.html:55 array1: (5) ['蘋果''李子''栗子''柿子''梨'
  10. 測試文件.html:57 const shizi2 = array1.lastIndexOf("柿子",2) 
  11. 測試文件.html:58 結(jié)果: -1 

在所有的瀏覽器中,包括IE9及以上的版本,indexOf()和lastIndexOf()都是區(qū)分大小寫的。

includes()方法

inclludes方法是ES6的一部分,可以用來確定array是否包含某個元素。如果包含,返回true, 不包含,返回false。是一個比較好的方法檢查某個元素是否存在,結(jié)果為一個boolean類型。 

  1. array1 (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:63 const shizi3 = array1.includes("柿子"
  3. 測試文件.html:64 結(jié)果: true 

默認情況下,includes()搜索整個array, 你仍然可以傳入第二個參數(shù),指定開始搜索的位置。

  1. array1 (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:69 const lizi3 = array1.includes("李子",1) 
  3. 測試文件.html:70 結(jié)果: true 
  4. 測試文件.html:71 ---------------------------- 
  5. 測試文件.html:73 array1 (5) ['蘋果''李子''栗子''柿子''梨'
  6. 測試文件.html:75 const lizi4 = array1.includes("李子",2) 
  7. 測試文件.html:76 結(jié)果: false 
  8. 測試文件.html:77 ---------------------------- 

includes也適用于與array中包含其他基本類型的元素。 

  1. array2 (8) [1, 2, empty, '1''2'nulltrue, undefined] 
  2. 測試文件.html:82 result = array2.includes(null
  3. 測試文件.html:83 結(jié)果: true 
  4. 測試文件.html:85 result1 = array2.includes(true
  5. 測試文件.html:86 結(jié)果: true 
  6. 測試文件.html:88 result2 = array2.includes(1) 
  7. 測試文件.html:89 結(jié)果: true 
  8. 測試文件.html:91 result3 = array2.includes(undefined) 
  9. 測試文件.html:92 結(jié)果: true 
  10. 測試文件.html:93 ---------------------------- 

includes和indexOf對于NaN有不同的反應(yīng)。 

  1. array3 (8) [1, 2, empty, '1', NaN, nulltrue, undefined] 
  2. 測試文件.html:98 result4 = array3.includes(NaN) 
  3. 測試文件.html:99 結(jié)果: true 
  4. 測試文件.html:101 result5 = array3.indexOf(NaN) 
  5. 測試文件.html:102 結(jié)果: -1 
  6. 測試文件.html:103 ---------------------------- 

includes()在IE中不支持。

find()方法

跟includes不同,find在array中每一個元素執(zhí)行一個條件,返回第一個符合條件的元素本身。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:107 result6 = array1.find(item=>item==="柿子"
  3. 測試文件.html:108 結(jié)果: 柿子 
  4. 測試文件.html:109 ---------------------------- 

上例中使用了arrow function,它是ES6中的概念。

如果沒有元素能夠滿足條件函數(shù),則返回undefined。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:113 result7 = array1.find(item=>item==="臉盆"
  3. 測試文件.html:114 結(jié)果: undefined 

你也可以傳入第二個參數(shù),作為當(dāng)前元素的index,如果你想比對index時尤其有用。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:119 result8 = array1.find((item,index)=>item==="柿子" && index>2) 
  3. 測試文件.html:120 結(jié)果 柿子 
  4. 測試文件.html:122 result9 = array1.find((item,index)=>item==="李子" && index>2) 
  5. 測試文件.html:123 結(jié)果 undefined 

find的另一個好處是,適用于array中元素是object的時候。 

  1. array4 (4) [{…}, {…}, {…}, {…}]0: {name'小李'}1: {name'小王'}2: {name'小周'}3: {name'小歐'}length: 4[[Prototype]]: Array(0) 
  2. 測試文件.html:129 result10 = array4.find(item=>item.name==="小周"
  3. 測試文件.html:130 結(jié)果 {name'小周'

find()不可用與IE瀏覽器

some()方法

some方法跟find相似,不同的是返回的結(jié)果是true或者false。 

  1. array1: (5) ['蘋果''李子''栗子''柿子''梨'
  2. 測試文件.html:135 result11 = array1.some(item=>item==="柿子"
  3. 測試文件.html:136 結(jié)果 true 

find也可用于元素為object的array的搜索。 

  1. array4 (4) [{…}, {…}, {…}, {…}]0: {name'小李'}1: {name'小王'}2: {name'小周'}3: {name'小歐'}length: 4[[Prototype]]: Array(0) 
  2. 測試文件.html:141 result12 = array4.some(item=>item.name==="小周"
  3. 測試文件.html:142 結(jié)果 true 

some()可用于IE9及以上版本,以及其他現(xiàn)代瀏覽器。

every()方法

every()方法要求array中每一個元素都符合一個條件。 

  1. array5 (5) [3, 4, 5, 6, 7] 
  2. 測試文件.html:148 result13 = array5.every(item=>item>3) 
  3. 測試文件.html:149 結(jié)果 false 
  4. 測試文件.html:151 result14 = array5.every(item=>item>2) 
  5. 測試文件.html:152 結(jié)果 true 

every方法可以應(yīng)用于現(xiàn)代瀏覽器及IE9及以上版本。

大小寫的搜索

indexOf()和includes()都是區(qū)分大小寫的,也就是說你必須要指定相同的字符才可搜索array。 

  1. array6 (3) ['Kate''Tom''Jerry'
  2. 測試文件.html:158 result14 = array6.indexOf('tom'
  3. 測試文件.html:159 結(jié)果 -1 
  4. 測試文件.html:161 result15 = array6.includes("tom"
  5. 測試文件.html:162 結(jié)果 false 

實現(xiàn)不區(qū)分大小寫的搜索的一種方法是使用map方法把每一個元素都修改為小寫。 

  1. array6 (3) ['Kate''Tom''Jerry'
  2. 測試文件.html:167 result16 = array6.map(item=>item.toLowerCase()).indexOf('tom'
  3. 測試文件.html:168 結(jié)果 1 
  4. 測試文件.html:170 result17 = array6.map(item=>item.toLowerCase()).includes('tom'
  5. 測試文件.html:171 結(jié)果 true 

另一個方法是使用some方法,一步中變小寫和比較同時完成。 

  1. array6 (3) ['Kate''Tom''Jerry'
  2. 測試文件.html:177 result17 = array6.some(item=>item.toLowerCase()==='tom'
  3. 測試文件.html:178 結(jié)果 true 

filter()方法

得到array中所有滿足某個條件的元素,并返回一個新的array。 

  1. array5 (5) [3, 4, 5, 6, 7] 
  2. 測試文件.html:183 result19 = array5.filter(item=>item>3) 
  3. 測試文件.html:184 結(jié)果 (4) [4, 5, 6, 7] 

如果沒有滿足條件的元素,filter()返回一個空的array。 

  1. array5 (5) [3, 4, 5, 6, 7] 
  2. 測試文件.html:189 result19 = array5.filter(item=>item>9) 
  3. 測試文件.html:190 結(jié)果 [] 

總結(jié)

本文中,我們介紹了7中在array中判斷某個元素是否存在的方法。很多人在這時候都可能會問,為什么會有這么多方法呢? 為什么不用一種方法來實現(xiàn)所有的功能呢?

簡單的答案可能就是:這些方法都設(shè)計來完成一個不同的目的。 

  • 想要知道元素的位置index,使用indexOf()
  • 想要知道元素最后出現(xiàn)在array中的位置index,使用lastIndexOf()
  • 只想知道array中是否包含某個元素,使用includes()
  • 想得到符合條件的元素,使用find()
  • 如果array中元素是object類型,用some()判斷某個元素是否存在
  • 判斷array中每一個元素都符合某個條件,用every()方法
  • 得到array中滿足某個條件的所有元素的新array,使用filter方法
責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2022-05-24 14:37:49

React條件渲染

2011-05-30 13:37:46

JSP

2011-12-16 14:45:36

JavaJSP

2023-05-22 14:23:26

機器人安全

2022-08-31 10:09:55

網(wǎng)絡(luò)彈性智能建筑

2016-09-28 20:05:22

2025-01-15 10:46:23

開發(fā)JavaScript集合

2013-10-16 15:56:41

虛擬化數(shù)據(jù)丟失

2013-07-25 09:32:58

虛擬化數(shù)據(jù)丟失

2020-06-23 14:51:13

JavaScript字符字符串

2022-09-30 10:48:12

AR制造業(yè)

2024-10-08 09:06:01

Spring應(yīng)用程序配置

2024-07-29 08:00:00

2023-04-18 15:57:30

2022-10-27 08:09:33

2016-12-27 19:19:51

2021-07-02 10:43:52

IT人才首席信息官人才招聘

2009-10-29 16:32:24

查看Oracle用戶的

2022-01-17 21:11:32

Windows 11Windows微軟

2022-12-12 09:12:30

點贊
收藏

51CTO技術(shù)棧公眾號

欧美调教sm| jizzjizz中国精品麻豆| 国产免费成人| 亚洲天堂精品在线| av在线影视| 国产成人免费在线观看不卡| 亚洲一区二区在线播放| 欧美极品在线| 在线播放日韩导航| 伊人发布在线| 久久午夜色播影院免费高清| 亚洲精品视频一二三| 国产精品99一区二区三| 久久免费视频在线| 国产人妖一区| 亚洲国产三级网| 国产视频网址在线| 中文字幕一区二区三区乱码在线| 三上悠亚免费在线观看| 亚洲三级电影在线观看| 欧美一级大片视频| 电影一区二区三区久久免费观看| 亚洲第一精品夜夜躁人人躁| 日本三级视频在线播放| 精品成人av一区| 欧美艹逼视频| 亚洲欧洲性图库| 亚洲精品高清无码视频| 成人看片黄a免费看在线| 一区二区成人国产精品| 国产情侣久久| 国产不卡一区二区在线观看| 久久精品亚洲人成影院| 国产97在线观看| 风间由美中文字幕在线看视频国产欧美| 亚洲天堂av在线免费| 91美女精品| 日韩高清免费在线| 国产精品电影| 亚洲另类xxxx| 欧美黄色网页| 一区二区三区 在线观看视| 国产网站在线| 亚洲视频在线视频| 高清欧美日韩| 欧美精品免费在线观看| 国产亚洲精品美女久久| 国产福利成人在线| 先锋资源久久| 国产亚洲欧美一区二区三区| 一本色道88久久加勒比精品| 日本视频一区二区不卡| 蜜臀国产一区二区三区在线播放| 一区二区精品视频| 99re在线精品| 又黄又爽毛片免费观看| 亚洲免费伊人电影| 一级黄色在线| 91精品国产福利| av日韩亚洲| 欧美国产精品va在线观看| 中文字幕av一区二区三区人| 国产日韩欧美成人| 1000部精品久久久久久久久| 欧美一进一出视频| 不卡av电影在线播放| 电影天堂爱爱爱爱| 日韩欧美中文免费| 国产福利电影在线播放| 欧美日本亚洲视频| 欧美综合另类| 日韩一区二区三区资源| 成人av一区二区三区| 波多野结衣在线中文| 欧美在线看片a免费观看| 在线播放蜜桃麻豆| 美女av一区二区三区| 国产欧美一区| 清纯唯美一区二区三区| 99re66热这里只有精品3直播| 中文字幕97| 日韩一区二区精品| 婷婷丁香久久| 国产精品美女呻吟| 蜜桃av一区二区三区电影| 欧美激情国产精品日韩| 色综合网站在线| 精品视频一区二区三区四区五区| 91精品国产色综合久久不卡98口| 欧美国产专区| 久久精品国产精品国产精品污| 处破女av一区二区| 亚洲啪啪aⅴ一区二区三区9色| 亚洲成色777777女色窝| 久久视频在线观看| 日韩免费av一区二区三区| 久久久久9999亚洲精品| 在线免费看a| 久久久久久久久久国产| 国产精品最新自拍| www.com黄色片| 日韩欧美国产麻豆| 深爱激情综合网| 正在播放精油久久| 午夜在线成人av| 国产成人免费精品| 91久久精品日日躁夜夜躁国产| 国产精品99久久久久久久女警| 在线一级视频| 最新日韩中文字幕| 国产视频一区欧美| 嫩草嫩草嫩草嫩草| 日韩在线观看网址| 亚洲综合日本| 国产三级av在线| 久久99精品国产99久久6尤物| 亚洲伊人观看| 午夜电影福利| 中文字幕一区二区精品| 国产一区二区三区成人欧美日韩在线观看 | 波多野结衣亚洲一区| 香蕉av一区| 国外视频精品毛片| 国产综合色视频| 欧美成人高清在线| 国产精品盗摄久久久| 久久九九影视网| 亚洲www.| 色乱码一区二区三在线看| 色综合亚洲欧洲| 国产精品一区二区av交换| 18岁视频在线观看| 一区二区三区美女xx视频| 性娇小13――14欧美| 三级在线播放| 国产成人aa精品一区在线播放| 91免费精品国自产拍在线不卡| 国产亚洲成av人片在线观看 | 永久免费观看精品视频| 欧美第一黄网| 色婷婷av一区| 日韩欧美视频| 一级黄色av| 88xx成人精品| 欧美激情一区不卡| 欧美特黄色片| 人人妻人人澡人人爽欧美一区双 | 日本蜜桃在线观看视频| 精品国产乱码久久久久| 色综合咪咪久久| 秋霞影院一区二区三区| 污污动漫在线观看| 久久97久久97精品免视看| av在线不卡电影| 成人h在线观看| 18禁裸男晨勃露j毛免费观看| 亚洲欧美国产日韩中文字幕| 国产一区二区在线电影| 成人av观看| 国产成人无码精品久久久性色| 美女少妇精品视频| 日韩一区日韩二区| 欧洲杯什么时候开赛| 校园春色欧美| 国产在线精品一区二区三区| 在线不卡的av| 毛片av一区二区三区| 精品3atv在线视频| 欧美亚洲一二三区| 97国产suv精品一区二区62| 亚洲人精品午夜| 久久久久久久久久久妇女| 自拍视频在线| 中文视频一区视频二区视频三区| 亚洲视频免费一区| 日本一区二区免费在线| 国产亚洲一区二区三区啪| 九色国产在线观看| 日韩欧美手机在线| 伊人久久男人天堂| 国产精品久久久久久久久图文区| 欧美日中文字幕| 欧美一级二级三级区| a级黄色片网站| 久久伊人精品天天| 亚洲国产精品欧美一二99| 亚洲视频观看| 美脚恋feet久草欧美| 乌克兰美女av| 92看片淫黄大片欧美看国产片| 欧美中文字幕一区二区三区 | 好看的亚洲午夜视频在线| 成人短视频在线| 久久亚洲a v| 欧美综合国产精品久久丁香| 色婷婷精品久久二区二区蜜臀av| 蜜桃在线一区二区三区| 看亚洲a级一级毛片| 小水嫩精品福利视频导航| 伊人av成人|