Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用内置方法的javascript切片_Javascript_Arrays_Slice - Fatal编程技术网

不使用内置方法的javascript切片

不使用内置方法的javascript切片,javascript,arrays,slice,Javascript,Arrays,Slice,array.slice方法背后的逻辑是什么?我试图实现一个函数来提取数组的一段,而不实际使用slice方法 function newSlice(array, begin, end) { for (let i = begin; i <= end; i++) { return array[i]; } 使用slice方法,您只需从这里开始到那里结束提取数组的“切片”。要自己实现slice函数,请尝试以下操作: function newSlice(array, begin, end) {

array.slice方法背后的逻辑是什么?我试图实现一个函数来提取数组的一段,而不实际使用slice方法

function newSlice(array, begin, end) {

for (let i = begin; i <= end; i++) {
return array[i];
}

使用slice方法,您只需从这里开始到那里结束提取数组的“切片”。要自己实现slice函数,请尝试以下操作:

function newSlice(array, begin, end) {
  let tempArray =[];

  if(end===undefined || end > array.length)
    end = array.length;

  for (let i = begin; i < end; i++) {
    tempArray.push(array[i]);
  }
  return tempArray;
}

myArray =newSlice([8,3,4,5,4],1,3);

这里我们从数组[8,3,4,5,4]中得到一个从索引1到索引3结束的切片,返回[3,4]。

逻辑如中所述。如果在实现时遇到问题,请给出一个。创建一个新数组。从开始索引开始,将该元素添加到新数组中,添加一个元素并检查是否超过结束索引。如果超过了结束索引,则返回新数组,否则将一个数组添加到当前所在的索引中,然后再次执行此过程,直到到达结束索引为止。如果没有提供结束索引,则假定结束索引是数组的长度-1。太好了,谢谢!我可以问一下,如果没有给出端点,或者如果端点实际上大于数组的长度,那么输出是什么吗?没问题!如果没有给定结束,或者如果结束大于数组长度,我们可以使用以下if语句修改函数,将其切片到数组的结尾:ifend===undefined | | end>array.length end=array.length;再次感谢!非常感谢!