Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm thế nào để áp dụng đồng thời một hàm đối với hai giá trị của mảng từ phải sang trái?


Sử dụng phương thức ReduceRight () trong JavaScript để áp dụng một hàm đồng thời chống lại hai giá trị của mảng từ phải sang trái để giảm nó thành một giá trị duy nhất.

Sau đây là các tham số -

  • gọi lại - Hàm thực thi trên từng giá trị trong mảng.
  • Giá trị ban đầu - Đối tượng sử dụng làm đối số đầu tiên cho lệnh gọi đầu tiên của lệnh gọi lại

Ví dụ

Bạn có thể thử chạy đoạn mã sau để tìm hiểu cách làm việc với phương thức ReduceRight () trong JavaScript -

<html>
   <head>
      <title>JavaScript Array reduceRight Method</title>
   </head>
   <body>
      <script>
         if (!Array.prototype.reduceRight)
         {
            Array.prototype.reduceRight = function(fun /*, initial*/)
            {
               var len = this.length;
               if (typeof fun != "function")
               throw new TypeError();
             
               // no value to return if no initial value, empty array
               if (len == 0 && arguments.length == 1)
               throw new TypeError();
               var i = len - 1;
               if (arguments.length >= 2)
               {
                  var rv = arguments[1];
               } else {
                  do
                  {
                     if (i in this)
                     {
                        rv = this[i--];
                        break;
                     }
                     // if array contains no values, no initial value to return
                     if (--i < 0)
                     throw new TypeError();
                  }
                  while (true);
                  }
                  for (; i >= 0; i--)
                  {
                     if (i in this)
                     rv = fun.call(null, rv, this[i], i, this);
                  }
               return rv;
            };
         }
         var total = [0, 1, 2, 3].reduceRight(function(a, b) { return a + b; });
         document.write("total is : " + total );
      </script>
   </body>
</html>