对数组使用.slice方法
using .slice method on an array
我正在练习JavaScriptKoan的数组部分,我不完全理解为什么这些答案是正确的。如果有人能澄清/让我知道我错了,我在下面添加了我的假设:
it("should slice arrays", function () {
var array = ["peanut", "butter", "and", "jelly"];
expect(array.slice(3, 0)).toEqual([]);
为什么它不至少切片"果冻",因为切片的开头是3.0的截断是如何使其变为空的?
expect(array.slice(3, 100)).toEqual(["jelly"]);
如果截止索引超出阵列中当前存在的索引,这是否意味着从slice创建的新数组将包含索引从3开始直到数组结束?
expect(array.slice(5, 1)).toEqual([undefined];
如果起始索引不存在于大堆
});
Array.slice()
的第二个参数是切片的上界。
把它想象成array.slice(lowestIndex, highestIndex)
。
当您从索引3切片到索引100时,有一个项目(在您的情况下)具有索引>=3和<100,所以你得到了一个包含这一项的数组。当您尝试从索引3到索引0进行切片时,不可能有任何项目满足条件index>=3和<0,所以得到一个空数组。
--编辑--
此外,array.slice()
不应返回undefined。这就是使用它的优点之一。如果数组中没有匹配的值,你只会得到一个空数组。即使您说var a = new Array()
并且不向它添加任何值,调用a.slice(0,1)
也只会返回一个空数组。从数组边界外进行切片也只会返回一个空数组。CCD_ 6将返回CCD_ 7,而CCD_。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 为什么Javascript库对数组方法(push,slice等)有本地引用
- jQuery slice() 方法 在 html 中选择元素(第一个/最后一个)
- 如何设置 slice();p ush();splice() 方法的限制
- 在像对象这样的数组上使用slice()方法
- 处理 Array.prototype.slice.call(参数)的更简洁方法
- 如果array .prototype.slice()方法返回浅拷贝,为什么改变切片数组的值不会改变原始数组
- 调用方法和Array.prototype.slice.call的用法
- 对数组使用.slice方法
- 如何使用slice方法从数组中获取一个随机元素并将其存储
- 是否有一种方法来.slice()从JQuery .load()返回的响应
- Javascript .slice方法(更深入的理解)