javascript中 Array.prototype.slice的用法.
2015-08-05 14:14
453 查看
首先看到 www.w3school.cn上的解释:http://www.w3school.com.cn/jsref/jsref_slice_array.asp
注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
document.write(arr)
</script>[/code]
输出:
document.write(arr)
</script>[/code]
输出:
其中: core_slice=[].slice ;
通过查询资料才了解到:
除了正常用法,slice 经常用来将 array-like 对象转换为 true array。在一些框架中会经常有这种用法。
Array.prototype.slice.call(arguments);//将参数转换成真正的数组.
因为arguments不是真正的Array,虽然arguments有length属性,但是没有slice方法,所以呢,Array.prototype.slice()执行的时候,Array.prototype已经被call改成arguments了,因为满足slice执行的条件(有length属性).
定义和用法
slice() 方法可从已有的数组中返回选定的元素。语法
arrayObject.slice(start,end)
参数 | 描述 |
---|---|
start | 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。说明
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。提示和注释
注释:您可使用负值从数组的尾部选取元素。注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
实例
例子 1
在本例中,我们将创建一个新数组,然后显示从其中选取的元素:<script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write([code]arr.slice(1)+ "<br />")
document.write(arr)
</script>[/code]
输出:
George,John,Thomas John,Thomas George,John,Thomas
例子 2
在本例中,我们将创建一个新数组,然后显示从其中选取的元素:<script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") document.write([code]arr.slice(2,4)+ "<br />")
document.write(arr)
</script>[/code]
输出:
George,John,Thomas,James,Adrew,Martin Thomas,James George,John,Thomas,James,Adrew,Martin 这是最基本的用法。 今天在看jquery源码的时候有段代码:
//转换成数组. toArray: function() { return core_slice.call( this ); },
其中: core_slice=[].slice ;
通过查询资料才了解到:
除了正常用法,slice 经常用来将 array-like 对象转换为 true array。在一些框架中会经常有这种用法。
Array.prototype.slice.call(arguments);//将参数转换成真正的数组.
因为arguments不是真正的Array,虽然arguments有length属性,但是没有slice方法,所以呢,Array.prototype.slice()执行的时候,Array.prototype已经被call改成arguments了,因为满足slice执行的条件(有length属性).
相关文章推荐
- JS将阿拉伯数字转为钱
- 技术那么多,你想看看JSON Schema的测试吗?
- JavaScript定义数组的三种方式(new Array(),new Array('x','y'),['x','y'])
- ExtJs grid导出Excel
- JS中变量
- HTML——JAVASCRIPT——光棒效果
- js循环动态绑定带参数函数遇到的问题及解决方案[转]
- JS 常用正则表达式
- [js开源组件开发]数字或金额千分位格式化组件
- 将html文件转换成jsp文件
- JavaScript权威指南_148_第15章_脚本化文档_15.10-其他文档特性-查询选取的脚本
- JSP+Servlet实现验证码生成
- href="javascript:"和href="javascript:void(0);"
- js绘制圆形和矩形的方法
- JavaScript实现自动消除按钮功能的方法
- JavaScript计算值然后把值嵌入到html中。
- js中的页面跳转
- javascript实现手机震动API代码
- JS实现生成会变大变小的圆环实例
- 怎么用js代码禁止浏览器的前进与后退?