Miêu tả

Phương thức array filter() trong Javascript tạo một mảng mới với tất cả các phần tử mà thỏa mãn hàm kiểm tra đã cho.

Cú pháp

Cú pháp của phương thức này như sau:

array.filter(callback[, thisObject]);

Chi tiết về tham số

  • callback − Hàm để kiểm tra mỗi phần tử của mảng.

  • thisObject − Đối tượng để sử dụng như là một this khi thực thi callback.

Trả về giá trị

Trả về mảng được tạo ra.

Khả năng tương thích

Phương thức này là một phần JavaScript bổ sung tới chuẩn ECMA-262. Để khiến nó làm việc, bạn thêm code sau vào phần trên cùng của script của bạn.

if (!Array.prototype.filter)
{
   Array.prototype.filter = function(fun /*, thisp*/)
   {
      var len = this.length;
      if (typeof fun != "function")
      throw new TypeError();
      
      var res = new Array();
      var thisp = arguments[1];
      for (var i = 0; i < len; i++)
      {
         if (i in this)
         {
            var val = this[i]; // in case fun mutates this
            if (fun.call(thisp, val, i, this))
            res.push(val);
         }
      }
      return res;
   };
}

Ví dụ

Bạn thử ví dụ sau:

<html>
   <head>
      <title>JavaScript Array filter Method</title>
   </head>
   
   <body>
   
      <script type="text/javascript">
         if (!Array.prototype.filter)
         {
            Array.prototype.filter = function(fun /*, thisp*/)
            {
               var len = this.length;
            
               if (typeof fun != "function")
               throw new TypeError();
            
               var res = new Array();
               var thisp = arguments[1];
            
               for (var i = 0; i < len; i++)
               {
                  if (i in this)
                  {
                     var val = this[i]; // in case fun mutates this
                     if (fun.call(thisp, val, i, this))
                     res.push(val);
                  }
               }
               return res;
            };
         }
         
         function isBigEnough(element, index, array) {
            return (element >= 10);
         }
         
         var filtered  = [12, 5, 8, 130, 44].filter(isBigEnough);
         document.write("Filtered Value : " + filtered ); 
      </script>
      
   </body>
</html>

Kết quả

Filtered Value : 12,130,44 

Các bài học JavaScript khác tại s2sontech:




Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Learning English Everyday