任何人都可以解释“切片”行为吗?
var arr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(arr.slice(0, 4)); // [ 'a', 'b', 'c', 'd' ]
console.log(arr.slice(4, 4)); // []
为什么第二个数组是空的?不应该是['e','f']? 如果省略“end”参数,则结果符合预期。
答案 0 :(得分:3)
arr.slice(4, 4)
会将从index = 4开始的项目返回到index = 4; 4-4=0
所以你的数组的长度为0
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
var arr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(arr.slice(0, 4)); // [ 'a', 'b', 'c', 'd' ]
console.log(arr.slice(4, 4)); // []
console.log(arr.slice(2, 4));
console.log(arr.slice(1, 2));

答案 1 :(得分:2)
将数组的一部分的浅表副本返回到从头到尾选择的新数组对象(不包括结尾)。原始数组不会被修改。
意思是,你从索引4开始,你在那个索引处结束,所以你没有采用任何元素,因为开始和结束索引之间的差异是0,所以没有采用任何元素。