Array.prototype.splice.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. load("test-common.js");
  2. try {
  3. assert(Array.prototype.splice.length === 2);
  4. var array = ["hello", "friends", "serenity", 1, 2];
  5. var removed = array.splice(3);
  6. assert(array.length === 3);
  7. assert(array[0] === "hello");
  8. assert(array[1] === "friends");
  9. assert(array[2] === "serenity");
  10. assert(removed.length === 2);
  11. assert(removed[0] === 1);
  12. assert(removed[1] === 2);
  13. array = ["hello", "friends", "serenity", 1, 2];
  14. removed = array.splice(-2);
  15. assert(array.length === 3);
  16. assert(array[0] === "hello");
  17. assert(array[1] === "friends");
  18. assert(array[2] === "serenity");
  19. assert(removed.length === 2);
  20. assert(removed[0] === 1);
  21. assert(removed[1] === 2);
  22. array = ["hello", "friends", "serenity", 1, 2];
  23. removed = array.splice(-2, 1);
  24. assert(array.length === 4);
  25. assert(array[0] === "hello");
  26. assert(array[1] === "friends");
  27. assert(array[2] === "serenity");
  28. assert(array[3] === 2);
  29. assert(removed.length === 1);
  30. assert(removed[0] === 1);
  31. array = ["serenity"];
  32. removed = array.splice(0, 0, "hello", "friends");
  33. assert(array.length === 3);
  34. assert(array[0] === "hello");
  35. assert(array[1] === "friends");
  36. assert(array[2] === "serenity");
  37. assert(removed.length === 0);
  38. array = ["goodbye", "friends", "serenity"];
  39. removed = array.splice(0, 1, "hello");
  40. assert(array.length === 3);
  41. assert(array[0] === "hello");
  42. assert(array[1] === "friends");
  43. assert(array[2] === "serenity");
  44. assert(removed.length === 1);
  45. assert(removed[0] === "goodbye");
  46. array = ["foo", "bar", "baz"];
  47. removed = array.splice();
  48. assert(array.length === 3);
  49. assert(array[0] === "foo");
  50. assert(array[1] === "bar");
  51. assert(array[2] === "baz");
  52. assert(removed.length === 0);
  53. removed = array.splice(0, 123);
  54. assert(array.length === 0);
  55. assert(removed.length === 3);
  56. assert(removed[0] === "foo");
  57. assert(removed[1] === "bar");
  58. assert(removed[2] === "baz");
  59. array = ["foo", "bar", "baz"];
  60. removed = array.splice(123, 123);
  61. assert(array.length === 3);
  62. assert(array[0] === "foo");
  63. assert(array[1] === "bar");
  64. assert(array[2] === "baz");
  65. assert(removed.length === 0);
  66. array = ["foo", "bar", "baz"];
  67. removed = array.splice(-123, 123);
  68. assert(array.length === 0);
  69. assert(removed.length === 3);
  70. assert(removed[0] === "foo");
  71. assert(removed[1] === "bar");
  72. assert(removed[2] === "baz");
  73. console.log("PASS");
  74. } catch (e) {
  75. console.log("FAIL: " + e);
  76. }