demojsarray.pas 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. uses js;
  2. function FilterOdd(el : JSValue; Index : NativeInt; Arr: TJSArray) : boolean ;
  3. Var
  4. I : Integer;
  5. begin
  6. I:=Integer(el);
  7. result:=((i mod 2)=1);
  8. end;
  9. function showElement(el : JSValue; Index : NativeInt; Arr: TJSArray) : boolean ;
  10. begin
  11. Writeln(Index,':',el);
  12. result:=true;
  13. end;
  14. Procedure ShowArray(Msg : string; a: TJSArray);
  15. begin
  16. writeln(Msg,' : ');
  17. a.forEach(@ShowElement);
  18. end;
  19. var
  20. a,b : TJSArray;
  21. begin
  22. a:=TJSArray._of(5,4,3,2,1,0);
  23. ShowArray('init',a);
  24. a:=TJSArray.new(5,4,3,2,1,0);
  25. ShowArray('init 2',a);
  26. {$IFDEF ECMAScript6}
  27. // Note these change the array itself
  28. ShowArray('fill(-1,3)',a.fill(-1,3));
  29. ShowArray('fill(-1,1,1)',a.fill(-1,1,1));
  30. ShowArray('fill(-1)',a.fill(-1));
  31. {$ENDIF}
  32. a:=TJSArray.new(5,4,3,2,1,2,3);
  33. Writeln(a.ToString,'.indexOf(3): ',a.indexOf(3));
  34. Writeln(a.ToString,'.indexOf(2,4): ',a.indexOf(2,4));
  35. ShowArray('Filter(odd)',a.filter(@FilterOdd));
  36. a:=TJSArray.new('alpha', 'bravo', 'charlie', 'delta');
  37. ShowArray('copyWithin(2,0)',a.copyWithin(2, 0));
  38. end.