Javascript 在数组上使用.slice方法
我正在练习JavaScript Koan的数组部分,我不完全理解为什么这些答案是正确的。如果有人能澄清/让我知道我是否错了,我在下面添加了我的假设:Javascript 在数组上使用.slice方法,javascript,slice,Javascript,Slice,我正在练习JavaScript Koan的数组部分,我不完全理解为什么这些答案是正确的。如果有人能澄清/让我知道我是否错了,我在下面添加了我的假设: it("should slice arrays", function () { var array = ["peanut", "butter", "and", "jelly"]; expect(array.slice(3, 0)).toEqual([]); 既然“果冻”一片的开头是“果冻”,为什么它不至少切一片
it("should slice arrays", function () {
var array = ["peanut", "butter", "and", "jelly"];
expect(array.slice(3, 0)).toEqual([]);
既然“果冻”一片的开头是“果冻”,为什么它不至少切一片呢
3.0的截止值如何使其变为空
如果截止索引超出了数组中当前存在的索引,
这是否意味着从切片创建的新数组将包含所有
从3开始到数组结束的索引
如果起始索引在数据库中不存在,它是否总是未定义的
阵列
第二个参数是切片的上限
将其视为array.slice(lowestIndex,highestIndex)
当您从索引3切片到索引100时,有一个项目(在您的例子中)的索引大于等于3且小于100,因此您将得到一个包含该项目的数组。当您尝试从索引3到索引0取一个切片时,不可能有任何项满足索引>=3和<0的条件,因此您将得到一个空数组
--编辑--
另外,
array.slice()
永远不应返回未定义。这是使用它的优点之一。如果数组中没有匹配的值,则返回一个空数组。即使您说var a=new Array()
并且不向其中添加任何值,调用a.slice(0,1)
也只会返回一个空数组。从数组边界之外进行切片也只会返回一个空数组a.slice(250)
将返回[]
,而a[250]
将未定义。谢谢,我现在明白了!
expect(array.slice(3, 100)).toEqual(["jelly"]);
expect(array.slice(5, 1)).toEqual([undefined];
});