欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS中關(guān)于filter()方法的使用及說明

 更新時(shí)間:2023年05月24日 14:31:48   作者:鐵錘妹妹@  
這篇文章主要介紹了JS中關(guān)于filter()方法的使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

關(guān)于filter()方法的使用

常見的場景:當(dāng)我們從后端請求到數(shù)據(jù)列表時(shí),我們需要對其中符合條件的數(shù)據(jù)進(jìn)行篩選、當(dāng)我們拿到數(shù)據(jù),我們希望把英文首字母大寫,數(shù)組去重等等。

定義和用法

  • filter用于對數(shù)組進(jìn)行過濾。
  • filter()方法創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。

注意:

filter() 不會(huì)對空數(shù)組進(jìn)行檢測;不會(huì)改變原始數(shù)組

語法

array.filter(function(currentValue,index,arr), thisValue)

返回值:

返回?cái)?shù)組,包含了符合條件的所有元素。如果沒有符合條件的元素則返回空數(shù)組。

實(shí)例

實(shí)例1

返回?cái)?shù)組nums中所有大于5的元素。

let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let res = nums.filter((num) => {
  return num > 5;
});
console.log(res);  // [6, 7, 8, 9, 10]

實(shí)例2 

對數(shù)組進(jìn)行過濾,篩選出年齡大于 18歲的數(shù)據(jù)

const arr = [
	{
        name: 'tom1',
        age: 23
    },
    {
        name: 'tom2',
        age: 42
    },
    {
        name: 'tom3',
        age: 17
    },
    {
        name: 'tom4',
        age: 13
    },
]
const res = arr.filter(item => item.age > 18);
console.log(res);  //[{name: 'tom1',age: 23},{name: 'tom2',age: 42}]
console.log(arr);

實(shí)例3 

利用 filter 遍歷出所有偶數(shù)

let arr = [56, 15, 48, 3, 7];
let newArr = arr.filter(function (x) {
    return x % 2 === 0;
});
console.log(newArr)
// [56, 48]

實(shí)例4

把一個(gè)Array中的空字符串刪掉,可以這么寫:

var arr = ['A', '', 'B', null, undefined, 'C', '  '];
var r = arr.filter(function (s) {
    return s && s.trim(); // 注意:IE9以下的版本沒有trim()方法
});
r; // ['A', 'B', 'C']

實(shí)例5 

利用 filter 進(jìn)行數(shù)組去重

function unique(arr) {
  return arr.filter(function(item, index, arr) {
    //當(dāng)前元素,在原始數(shù)組中的第一個(gè)索引==當(dāng)前索引值,否則返回當(dāng)前元素
    return arr.indexOf(item, 0) === index;
  });
}
var arr = [1,1,'RUNOOB','RUNOOB',true,true,15];
console.log(unique(arr))
// [1, "RUNOOB", true, 15]
 var arr = ['apple','strawberry','banana','pear','apple','orange','orange','strawberry']
 var temp_arr = arr.filter(function (element, index, self) {
      return self.indexOf(element) === index
    })
 console.log(temp_arr)

indexOf總是返回第一個(gè)元素的位置,后續(xù)的重復(fù)元素位置與indexOf返回的位置不相等,因此被filter濾掉了,所以重復(fù)的元素僅會(huì)保留第一個(gè)位置的元素

filter()和indexO一起使用能做啥

分開使用

第一:js中indexof()檢測字符在字符串中首次出現(xiàn)的位置(下標(biāo)),若未匹配到則返回-1。

注意:檢測的字符不能為空哦,否則會(huì)返回第一個(gè)字符的下標(biāo)。

第二:js中的filter的方法,篩選數(shù)組中符合條件的,將每一次符合條件的字符放入新數(shù)組中!

結(jié)合使用

場景一:去除數(shù)組中重復(fù)字符

場景2:去除數(shù)組對象中的重復(fù)對象

只有掌握好零星的知識(shí)點(diǎn),才能懂的結(jié)合一起使用!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript 驗(yàn)證瀏覽器是否支持javascript的方法小結(jié)

    JavaScript 驗(yàn)證瀏覽器是否支持javascript的方法小結(jié)

    一些網(wǎng)站只有客戶端js的驗(yàn)證,這樣就給一些hacher一些可趁之機(jī)了,不信大家測試一些網(wǎng)站的注冊功能看看,有部分網(wǎng)站只有客戶端驗(yàn)證,我為了達(dá)到客戶端驗(yàn)證,先是判斷瀏覽器是否支持js,如果不支持,提示信息,然后屏蔽掉發(fā)送按鈕
    2009-05-05
  • javascript createElement()創(chuàng)建input不能設(shè)置name屬性的解決方法

    javascript createElement()創(chuàng)建input不能設(shè)置name屬性的解決方法

    今天在使用document.createElement()動(dòng)態(tài)創(chuàng)建input時(shí),發(fā)現(xiàn)不能為其name賦值,以下是測試代碼。
    2009-10-10
  • js實(shí)現(xiàn)隨屏幕滾動(dòng)的帶緩沖效果的右下角廣告代碼

    js實(shí)現(xiàn)隨屏幕滾動(dòng)的帶緩沖效果的右下角廣告代碼

    這篇文章主要介紹了js實(shí)現(xiàn)隨屏幕滾動(dòng)的帶緩沖效果的右下角廣告代碼,涉及javascript基于數(shù)學(xué)運(yùn)算及定時(shí)函數(shù)動(dòng)態(tài)操作頁面元素的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • 深入了解JavaScript中的函數(shù)柯里化

    深入了解JavaScript中的函數(shù)柯里化

    JavaScript函數(shù)柯里化是一種將接受多個(gè)參數(shù)的函數(shù)轉(zhuǎn)換為一系列接受單個(gè)參數(shù)的函數(shù)的技術(shù)。本文將通過簡單的示例為大家詳細(xì)講講函數(shù)柯里化的相關(guān)應(yīng)用,需要的可以參考一下
    2023-04-04
  • Google 二維條碼 API 整理

    Google 二維條碼 API 整理

    Google 二維條碼 API 整理,需要的朋友可以參考下。
    2010-11-11
  • 基于JavaScript實(shí)現(xiàn)前端數(shù)據(jù)多條件篩選功能

    基于JavaScript實(shí)現(xiàn)前端數(shù)據(jù)多條件篩選功能

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)前端數(shù)據(jù)多條件篩選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • JavaScript 中的六種循環(huán)方法

    JavaScript 中的六種循環(huán)方法

    這篇文章主要介紹了JavaScript 中的六種循環(huán)方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2021-01-01
  • JavaScript對象與數(shù)組的幾種常見復(fù)制方法

    JavaScript對象與數(shù)組的幾種常見復(fù)制方法

    在 JavaScript 開發(fā)中,對象和數(shù)組的復(fù)制是一個(gè)非常常見的操作,無論是函數(shù)參數(shù)傳遞、狀態(tài)管理,還是避免不必要的副作用,了解和掌握各種復(fù)制方式至關(guān)重要,我們將系統(tǒng)梳理 JavaScript 中的幾種常見復(fù)制方法,并對其應(yīng)用場景進(jìn)行詳細(xì)說明,需要的朋友可以參考下
    2024-10-10
  • js繪制圓形和矩形的方法

    js繪制圓形和矩形的方法

    這篇文章主要介紹了js繪制圓形和矩形的方法,涉及javascript鼠標(biāo)事件及頁面元素樣式的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • JScript分割字符串示例代碼

    JScript分割字符串示例代碼

    分割字符串的方法有很多,下面為大家介紹下使用JScript簡單實(shí)現(xiàn)下,喜歡的朋友可以參考下
    2013-09-09

最新評論