slice.js 745 B

12345678910111213141516171819202122232425
  1. var toNumber = require('./toNumber')
  2. /**
  3. * 裁剪 Arguments 或数组 array,从 start 位置开始到 end 结束,但不包括 end 本身的位置
  4. * @param {Array/Arguments} array 数组或Arguments
  5. * @param {Number} startIndex 开始索引
  6. * @param {Number} endIndex 结束索引
  7. */
  8. function slice (array, startIndex, endIndex) {
  9. var result = []
  10. var argsSize = arguments.length
  11. if (array) {
  12. startIndex = argsSize >= 2 ? toNumber(startIndex) : 0
  13. endIndex = argsSize >= 3 ? toNumber(endIndex) : array.length
  14. if (array.slice) {
  15. return array.slice(startIndex, endIndex)
  16. }
  17. for (; startIndex < endIndex; startIndex++) {
  18. result.push(array[startIndex])
  19. }
  20. }
  21. return result
  22. }
  23. module.exports = slice