位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > JavaScript > 問(wèn)題詳情

JavaScript 數(shù)組過(guò)濾

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-25

■知識(shí)點(diǎn)

使用filterO方法可以返回?cái)?shù)組中滿足指定條件的元素。具體用法如下:

array.filter(callbackfn[, thisArg])

參數(shù)說(shuō)明如下。

    callbackfn:必需參數(shù),一個(gè)接受最多3個(gè)參數(shù)的函數(shù)。對(duì)于數(shù)組中的每個(gè)元素,filter方法都會(huì)調(diào)用callbackfn函數(shù)一次。提示,回調(diào)函數(shù)語(yǔ)法說(shuō)明可以參考20.1.2小節(jié)。

    thisArg:可選參數(shù),可在callbackfn函數(shù)中為其引用this關(guān)鍵字的對(duì)象。如果省略thisArg,則 undefined 將用作 this 值。

返回值是一個(gè)包含回調(diào)函數(shù)為其返回tme的所有值的新數(shù)組。如果回調(diào)函數(shù)為array的所有元素返回false,則新數(shù)組的長(zhǎng)度為0。

■實(shí)例設(shè)計(jì)

【示例1】下面的示例演示如何使用filterO方法篩選出數(shù)組中的素?cái)?shù)。

function f(value, index, ar) {

    high = Math.floor(Math.sqrt(value)) + 1; 

    for (var div = 2; div <= high; div++) {

        if (value % div == 0) { 

            return false;

        }

    }

    return true;

}

var a = [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53];

var al = a.filter(f);

console.log (al);      //31,37,41,43,47,53

【示例2】下面的示例演示如何使用filterO方法過(guò)濾掉數(shù)組中在指定范圍外的元素。

var f = function(value) {

    if (typeof value !== 'number') return false;

    else return value >= this.min && value <= this.max;

}

var a = [6, 12, n15' 16, "the11, -12]; 

var obj = { min: 10, max: 20 } 

var r = a.filter (f, obj);

console.log (r);          //12,16

【示例3】下面的示例演示如何使用filterO方法過(guò)濾字符串中每個(gè)單詞的首字母。

function f(value, index, ar) {

    if (index == 0) return true;     //第 1 個(gè)字母直接選擇

    else return ar [index - 1] === " ";     //如果字母前面是空字符,則返回這個(gè)字母

}

var a = "The quick brown fox jumps over the lazy dog.";

var subset = [] .filter.call (a, f);

console.log(subset);                     //T,q,b,f,j,o,t,1,d

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部