JavaScript數(shù)組filter方法
1、定義
filter()創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。
2、語法
array.filter(function(currentValue,index,arr), thisValue);
3、參數(shù)說明
返回
4、用法
filter() 方法用于把Array中的某些元素過濾掉,然后返回剩下的未被過濾掉的元素。
5、注意事項(xiàng)
1、filter() 不會(huì)對空數(shù)組進(jìn)行檢測;
2、filter() 不會(huì)改變原始數(shù)組。
6、使用實(shí)例
1.返回?cái)?shù)組array中所有元素都大于等于14的元素、返回等于14、返回大于某個(gè)值和小于某個(gè)值的元素的元素。
const array = [14, 17, 18, 32, 33, 16, 40]; const newArr = array.filter(num => num > 14) console.log(newArr);//打印 [17,18,32,33,16,40] // 查找某個(gè)值------------------------- const array = [14, 17, 18, 32, 33, 16, 40]; const newArr = array.filter(num => num == 14) console.log(newArr);//打印 [14] //返回大于某個(gè)值和小于某個(gè)值的元素 const array = [14, 17, 18, 32, 33, 16, 40]; const newArr = array.filter(num => num > 14 && num < 33) console.log(newArr);//打印 [17, 18, 32, 16]
2.數(shù)組去重操作:對數(shù)組array中所有相同的元素進(jìn)行去重復(fù)操作。
const array = [2, 2, 'a', 'a', true, true, 15, 17] const newArr = array.filter((item, i, arr) => { return arr.indexOf(item) === i }) console.log(newArr);//打印 [2, 'a', true, 15, 17] //------------------------------------------------------------------------- const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 4, 5, 6, 7, 9,] const newArr = array.filter((item, i, arr) => { return arr.indexOf(item) === i }) console.log(newArr);// 打印 [1, 2, 3, 4, 5, 6, 7, 8, 9]
3、數(shù)組中保留奇數(shù)或者偶數(shù)。
//保留偶數(shù)---------------------------------------- const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] const newArr = array.filter((item, i, arr) => { return item % 2 === 0 }) console.log(newArr);// 打印 [2, 4, 6, 8, 10] //保留奇數(shù)---------------------------------------- const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] const newArr = array.filter((item, i, arr) => { return item % 2 !== 0 }) console.log(newArr);// 打印 [1, 3, 5, 7, 9]
4、去掉數(shù)組中的假值,比如:空字符串、undefined、null、0、false。
const array = [ { id: 3 }, { id: 4 }, { id: null }, { id: undefined }, { id: '' }, { id: 0 }, { id: false } ] const newArr = array.filter(({ id }) => id) console.log(newArr);// 打印 [{ "id": 3 },{ "id": 4 }] //------------------------------------------------------------------- const array = [undefined, null, 3, 5, 'a', false, 0] const newArr = array.filter(item => item) console.log(newArr);// 打印 [3, 5, 'a']
5、把對象數(shù)組array中的某個(gè)屬性值取出來存到數(shù)組newArr中。
const array = [ { name: "a", type: "letter" }, { name: '1', type: "digital" }, { name: 'c', type: "letter" }, { name: '2', type: "digital" }, ]; const newArr = array.filter((item, i, arr) => { return item.type === "letter" }) console.log(newArr); // 打印 [{ "name": "a", "type": "letter" }, { "name": "c", "type":"letter" }]
6、filter結(jié)合find方法,實(shí)現(xiàn)兩個(gè)數(shù)組的補(bǔ)集的解決方法,oldArr的元素newArr中都有,在newArr中去掉所有的oldArr。
find() 方法返回?cái)?shù)組中滿足提供的測試函數(shù)的第一個(gè)元素的值。這里有四個(gè)元素,那么就會(huì)返回兩個(gè)數(shù)組元素相等的值,這里取反就返回不相等的值, 不取反的時(shí)候因?yàn)?0的元素不符合,所以不返回30的值。
const array = [32, 4, 11, 55, 46, 99, 104, 54, 16, 33, 78, 43, 40] const oldArr = [32, 33, 16, 40, 30] function myfunction() { const result = array.filter(item1 => { //此處取反去掉,將變換元素狀態(tài) return !oldArr.find(item2 => { return item1 === item2 }) }) return result } const newArr = myfunction() console.log(newArr); // 取反打印 [4, 11, 55, 46, 99, 104, 54, 78, 43] // 不取反打印 [32, 16, 33, 40] 此處30的元素不符合,所以不返回30的值
到此這篇關(guān)于JavaScript數(shù)組filter方法的文章就介紹到這了,更多相關(guān)js數(shù)組filter內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- js如何找出兩個(gè)數(shù)組中不同的元素
- js深度合并兩個(gè)數(shù)組對象的實(shí)現(xiàn)
- JavaScript實(shí)現(xiàn)數(shù)組去重的十種方法分享
- JavaScript中數(shù)組隨機(jī)排序的實(shí)現(xiàn)詳解
- JavaScript數(shù)組合并的8種常見方法小結(jié)
- JavaScript高階API數(shù)組reduce函數(shù)使用示例
- JavaScript中運(yùn)算符與數(shù)組擴(kuò)展詳細(xì)講解
- JS數(shù)組操作大全對象數(shù)組根據(jù)某個(gè)相同的字段分組
- Java?從json提取數(shù)組并轉(zhuǎn)換為list的操作方法
- js對象合并的4種方式與數(shù)組合并的4種方式
- 27個(gè)JavaScript數(shù)組常見方法匯總與實(shí)例說明
相關(guān)文章
js實(shí)現(xiàn)橫向伸展開的二級導(dǎo)航菜單代碼
這篇文章主要介紹了js實(shí)現(xiàn)橫向伸展開的二級導(dǎo)航菜單代碼,涉及javascript鼠標(biāo)事件及頁面元素遍歷的相關(guān)技巧,需要的朋友可以參考下2015-08-08Atitit.js的鍵盤按鍵事件捆綁and事件調(diào)度
這篇文章主要介紹了Atitit.js的鍵盤按鍵事件捆綁and事件調(diào)度的相關(guān)資料,需要的朋友可以參考下2016-04-04使用webpack/gulp構(gòu)建TypeScript項(xiàng)目的方法示例
這篇文章主要介紹了使用webpack/gulp構(gòu)建TypeScript項(xiàng)目的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12js根據(jù)給定的日期計(jì)算當(dāng)月有多少天實(shí)現(xiàn)思路及代碼
根據(jù)給定的日期計(jì)算當(dāng)月有多少天,想必這樣的功能大家都想實(shí)現(xiàn)吧,所以本文的出現(xiàn)相當(dāng)有必要,接下來看下實(shí)現(xiàn)代碼,感興趣的朋友可以了解下,希望對你有所幫助2013-02-02Discuz 公告效果(自動(dòng)換行,無間隙滾動(dòng))
Discuz 公告效果效果代碼,可以自動(dòng)換行和無間隙滾動(dòng)2009-03-03layui使用templet格式化表格數(shù)據(jù)的方法
今天小編就為大家分享一篇layui使用templet格式化表格數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09純JavaScript 實(shí)現(xiàn)flappy bird小游戲?qū)嵗a
這篇文章主要介紹了純JavaScript 實(shí)現(xiàn)flappy bird小游戲?qū)嵗a,b本文分七大步驟給大家介紹,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09JavaScript獲取兩個(gè)數(shù)組交集的方法
這篇文章主要介紹了JavaScript獲取兩個(gè)數(shù)組交集的方法,涉及javascript針對數(shù)組的相關(guān)操作技巧,需要的朋友可以參考下2015-06-06基于JavaScript實(shí)現(xiàn)帶數(shù)據(jù)驗(yàn)證和復(fù)選框的表單提交
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)帶數(shù)據(jù)驗(yàn)證和復(fù)選框的表單提交功能,需要的朋友可以參考下2017-08-08