array_reduce.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function returnSum(w,x,y,z)
  6. {
  7. WScript.Echo("accumulator:" + w + " value:"+ x + " index:" + y + " Object:" + z);
  8. return w + x;
  9. }
  10. function returnSquare(w,x,y,z)
  11. {
  12. WScript.Echo("accumulator:" + w + " value:"+ x + " index:" + y + " Object:" + z);
  13. return w + x * x;
  14. }
  15. function returnStringSquare(w,x,y,z)
  16. {
  17. WScript.Echo("accumulator:" + w + " value:"+ x + " index:" + y + " Object:" + z);
  18. return w + x + x;
  19. }
  20. function returnRandom(w,x,y,z)
  21. {
  22. WScript.Echo("accumulator:" + w + " value:"+ x + " index:" + y + " Object:" + z);
  23. return w + x + y;
  24. }
  25. Array.prototype[6] = 20;
  26. var x = [1,2,3,4,5];
  27. var y = x.reduce(returnSum,0);
  28. WScript.Echo(y);
  29. x = [10,20,30,40,50];
  30. y = x.reduce(returnSquare, 0);
  31. WScript.Echo(y);
  32. x = [10,20,30,40,50];
  33. y = x.reduce(returnRandom);
  34. WScript.Echo(y);
  35. x = {0: "abc", 1: "def", 2: "xyz"}
  36. x.length = 3;
  37. y = Array.prototype.reduce.call(x, returnSum, "" );
  38. WScript.Echo(y);
  39. y = Array.prototype.reduce.call(x, returnStringSquare, "");
  40. WScript.Echo(y);
  41. y = Array.prototype.reduce.call(x, returnRandom, "");
  42. WScript.Echo(y);
  43. x = [10,20,30,40,50];
  44. x[8] = 10;
  45. y = x.reduce(returnSum, 30);
  46. WScript.Echo(y);