Array filter() trong JavaScript

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 Array filter() trong JavaScript

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ụ minh họa Array filter() trong JavaScript

<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

Viết câu trả lời

Drop Images

0 Bình luận