slice.js 506 B

12345678910111213141516171819202122
  1. exports = function(arr, start, end) {
  2. var len = arr.length;
  3. if (start == null) {
  4. start = 0;
  5. } else if (start < 0) {
  6. start = Math.max(len + start, 0);
  7. } else {
  8. start = Math.min(start, len);
  9. }
  10. if (end == null) {
  11. end = len;
  12. } else if (end < 0) {
  13. end = Math.max(len + end, 0);
  14. } else {
  15. end = Math.min(end, len);
  16. }
  17. var ret = [];
  18. while (start < end) ret.push(arr[start++]);
  19. return ret;
  20. };
  21. module.exports = exports;