不使用内置方法的javascript切片
array.slice方法背后的逻辑是什么?我试图实现一个函数来提取数组的一段,而不实际使用slice方法不使用内置方法的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) {
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;再次感谢!非常感谢!