Jquery遍歷篩選數(shù)組的幾種方法和遍歷解析json對(duì)象,Map()方法詳解以及數(shù)組中查詢某值是否存在
1.jquery grep()篩選遍歷數(shù)組(可以得到反轉(zhuǎn)的數(shù)組)
// 1.jquery grep()篩選遍歷數(shù)組(可以得到反轉(zhuǎn)的數(shù)組) var array = [1,5,9,3,12,4,48,98,4,75,2,10,11]; var filterArray = $.grep(array,(currentValue) => { return currentValue > 10; }); console.log(`${filterArray}---${filterArray.length}`);//12,48,98,75,11---5 var filterReverse = $.grep(array,(currentValue) => { return currentValue > 10; },true); console.log(`${filterReverse}---${filterReverse.length}`);//1,5,9,3,4,4,2,10---8 // for(var i=0;i<filterArray.length;i++){ // console.log(filterArray[i]); // } for(key in filterArray){ console.log(filterArray[key]) }
2.filter()篩選遍歷數(shù)組(與grep()不同的是調(diào)用者不同,參數(shù)不同)
var ages = [32, 33, 16, 40, 45, 98, 12, 35, 8,16]; var filterAges = ages.filter((currentValue,index,ages) => { return currentValue > 20; }) console.log(filterAges);//[32, 33, 40, 45, 98, 35] for(key in filterAges){ console.log(filterAges[key]) }
3.jquery each()篩選遍歷數(shù)組(主要用來遍歷對(duì)象)
var anObject = {one:1,two:2,three:3};//對(duì)json數(shù)組each $.each(anObject,function(name,value) { console.log(`${name}---${value}`) }); var anArray = ['one','two','three']; $.each(anArray,function(n,value){ console.log(`${n}---${value}`) });
4.jquery forEach()篩選遍歷數(shù)組
var forArray = ['mu','zi','muzi','digbig','muzidigbig']; forArray.forEach((currentValue,index,forArray) => { console.log(`${index}---${currentValue}`) })
5.jquery map()篩選遍歷數(shù)組
var strings = ['0','1','2','3','4','S','6']; var values = $.map(strings,function(value){ var result = new Number(value); return isNaN(result) ? null:result;//isNaN:is Not a Number的縮寫 }); for (key in values) { console.log(values[key]); }
6.jquery inArray()篩選遍歷數(shù)組(用于查找某個(gè)值第一次在數(shù)組中出現(xiàn)的位置)
var iArray = ['one','two','three','two']; var index = $.inArray('two',anArray); console.log(`返回該值在數(shù)組中的鍵值:${index}`);//返回該值在數(shù)組中的鍵值,返回 1 console.log(`返回該鍵在數(shù)組中的值:${iArray[index]}`);//two
7.indexOf()用于查找某個(gè)值第一次在數(shù)組中出現(xiàn)的位置(存在返回第一次出現(xiàn)的索引值,不存在返回-1)
var iArray = ['one','two','three','two']; var indexOf = iArray.indexOf('two'); console.log(indexOf);//1
8.includes()(判斷數(shù)組中是否存在某個(gè)值返回Boolean類型)
var iArray = ['one','two','three','two']; var index = iArray.includes('two'); console.log(index);//true
二、遍歷解析json對(duì)象
1.遍歷json 1
var json = [{dd:'SB',AA:'東東',re1:123},{cccc:'dd',lk:'1qw'}]; for(var i=0,l=json.length;i<l;i++){ for(var key in json[i]){ console.log(`${key}:${json[i][key]}`); } }
2、jquery遍歷解析json對(duì)象 2
有如下 json對(duì)象:
var obj ={'name':'馮娟','password':'123456','department':'技術(shù)部','sex':'女','old':30};
遍歷方法:
var obj ={'name':'馮娟','password':'123456','department':'技術(shù)部','sex':'女','old':30}; var str = ''; for(var p in obj){ str += obj[p]+','; // return str; } console.log(str);//馮娟,123456,技術(shù)部,女,30,
三、Map()方法詳解
1、實(shí)例
構(gòu)建表單中所有值的列表:
$("p").append( $("input").map(function(){ return $(this).val(); }).get().join(", ") );
2、定義和用法
map()
把每個(gè)元素通過函數(shù)傳遞到當(dāng)前匹配集合中,生成包含返回值的新的 jQuery 對(duì)象。
3、語法
.map(callback(index,domElement))
參數(shù)
描述
callback(index,domElement) 對(duì)當(dāng)前集合中的每個(gè)元素調(diào)用的函數(shù)對(duì)象。
詳細(xì)說明
由于返回值是 jQuery 封裝的數(shù)組,使用 get() 來處理返回的對(duì)象以得到基礎(chǔ)的數(shù)組。
.map() 方法對(duì)于獲得或設(shè)置元素集的值特別有用。請(qǐng)思考下面這個(gè)帶有一系列復(fù)選框的表單:
<form method="post" action=""> <fieldset> <div> <label for="two">2</label> <input type="checkbox" value="2" id="two" name="number[]"> </div> <div> <label for="four">4</label> <input type="checkbox" value="4" id="four" name="number[]"> </div> <div> <label for="six">6</label> <input type="checkbox" value="6" id="six" name="number[]"> </div> <div> <label for="eight">8</label> <input type="checkbox" value="8" id="eight" name="number[]"> </div> </fieldset> </form>
我們能夠獲得復(fù)選框 ID 組成的逗號(hào)分隔的列表:
$(':checkbox').map(function() { return this.id; }).get().join(',');
本次調(diào)用的結(jié)果是字符串:"two,four,six,eight"。
在 callback 函數(shù)內(nèi)部,this 引用每次迭代的當(dāng)前 DOM 元素。該函數(shù)可返回單獨(dú)的數(shù)據(jù)項(xiàng),或者是要被插入結(jié)果集中的數(shù)據(jù)項(xiàng)的數(shù)組。如果返回的是數(shù)組,數(shù)組內(nèi)的元素會(huì)被插入集合中。如果函數(shù)返回 null 或 undefined,則不會(huì)插入任何元素。
若有不足請(qǐng)多多指教!希望給您帶來幫助!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- JS中循環(huán)遍歷數(shù)組的四種方式總結(jié)
- JS數(shù)組及對(duì)象遍歷方法代碼匯總
- JavaScript遍歷數(shù)組的方法代碼實(shí)例
- JS中數(shù)組實(shí)現(xiàn)代碼(倒序遍歷數(shù)組,數(shù)組連接字符串)
- JavaScript遍歷數(shù)組和對(duì)象的元素簡(jiǎn)單操作示例
- JavaScript遍歷數(shù)組的三種方法map、forEach與filter實(shí)例詳解
- JS遍歷JSON數(shù)組及獲取JSON數(shù)組長(zhǎng)度操作示例【測(cè)試可用】
- 解決vuejs 使用value in list 循環(huán)遍歷數(shù)組出現(xiàn)警告的問題
- JS中數(shù)組與對(duì)象的遍歷方法實(shí)例小結(jié)
- JS實(shí)現(xiàn)遍歷不規(guī)則多維數(shù)組的方法
- JavaScript 數(shù)組遍歷的五種方法
相關(guān)文章
jQuery+css實(shí)現(xiàn)的時(shí)鐘效果(兼容各瀏覽器)
這篇文章主要介紹了jQuery+css實(shí)現(xiàn)的時(shí)鐘效果,使用js的setTimeout方法實(shí)時(shí)修改頁面元素,實(shí)現(xiàn)動(dòng)態(tài)顯示時(shí)鐘的功能.該代碼可兼容各瀏覽器,需要的朋友可以參考下2016-01-01jquery操作HTML5 的data-*的用法實(shí)例分享
從jQuery 1.4.3起, HTML 5 data- 屬性 將自動(dòng)被引用到j(luò)Query的數(shù)據(jù)對(duì)象中。也就是說雖然 data-* 是在html5 中的元素, 但是如果使用 jquery 1.4.3庫以上的.還是可以 在非HTML5的頁面或?yàn)g覽器里, 仍然可以使用.data(obj)方法來操作"data-*" 數(shù)據(jù).2014-08-08在JQuery dialog里的服務(wù)器控件 事件失效問題
今天遇到個(gè)問題,在dialog中放了服務(wù)器端的空間dropdownlist,但是寫selectindexchange事件卻怎么也觸發(fā)不了,然后就在網(wǎng)上搜,終于看到有個(gè)哥們解決了這個(gè)問題,真的謝謝他。2010-12-12jquery封裝插件時(shí)匿名函數(shù)形參和實(shí)參的寫法解釋
本文主要介紹了jquery封裝插件時(shí)匿名函數(shù)形參和實(shí)參的寫法解釋。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02jQuery插件實(shí)現(xiàn)表格隔行變色及鼠標(biāo)滑過高亮顯示效果代碼
這篇文章主要介紹了jQuery插件實(shí)現(xiàn)表格隔行變色及鼠標(biāo)滑過高亮顯示效果代碼,涉及jQuery針對(duì)頁面元素動(dòng)態(tài)操作及響應(yīng)鼠標(biāo)事件動(dòng)態(tài)修改頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-02-02jQuery插件PageSlide實(shí)現(xiàn)左右側(cè)欄導(dǎo)航菜單
jQuery pageSlide 是一個(gè)可以讓網(wǎng)頁出現(xiàn)滾動(dòng)效果的jQuery插件,它可以控制一個(gè)隱藏頁面的顯示和關(guān)閉。具體來說,就是當(dāng)前頁占一個(gè)完整頁面,隱藏頁是看不到的,你設(shè)置一個(gè)控制的地方,點(diǎn)擊該控制時(shí)觸發(fā)事件,隱藏的頁面就滑出來,再次點(diǎn)擊隱藏頁面以外的地方,它就又關(guān)閉2015-04-04