1. 程式人生 > >jq從陣列中刪除指定元素(根據自定義條件) 超好用的 $.grep() 方法 jQuery.grep()

jq從陣列中刪除指定元素(根據自定義條件) 超好用的 $.grep() 方法 jQuery.grep()

 

轉:

jQuery.grep()

什麼是jQuery.grep()?

  jQuery.grep()是一個查詢滿足過濾函式的陣列元素的函式。原始陣列不受影響,返回值為陣列。

用法介紹:

寫法:

jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )

  引數介紹:

  • array 型別: Array 用於查詢元素的陣列。
  • function(elementOfArray, indexInArray) 型別:
    Function
    () 該函式來處理每項元素的比對。第一個引數是正在被檢查的陣列的元素,第二個引數是該元素的索引值。該函式應返回一個布林值。 this將是全域性的window物件。
    •   elementOfArray--陣列元素
    •   indexInArray--元素索引值
  • invert 型別: Boolean 如果“invert”為false,或沒有提供,函式返回一個“callback”中返回true的所有元素組成的陣列,。如果“invert”為true,函式返回一個“callback”中返回false的所有元素組成的陣列。    

舉例:過濾出原始陣列中值不為 5,並且索引值大於 4 的元素。然後再過濾掉所有值為 9 的元素

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <! DOCTYPE html> < html > < head >    < style >    div { color:blue; }    p { color:green; margin:0; }    span { color:red; }    </ style >    < script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></ script > </ head > < body >    < div ></ div >    < p ></ p >    < span ></ span > < script > var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ]; $("div").text(arr.join(", "));   arr = jQuery.grep(arr, function(n, i){    return (n != 5 && i > 4); }); $("p").text(arr.join(", "));    arr = jQuery.grep(arr, function (a) { return a != 9; }); $("span").text(arr.join(", "));    </ script >    </ body > </ html >

  則結果為:

1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1
1, 9, 4, 7, 3, 8, 6, 9, 1
1, 4, 7, 3, 8, 6, 1