javascript Array.prototype.slice的使用示例

 更新时间:2013年11月14日 15:46:53   作者:  
javascript Array.prototype.slice除了常见的从某个数组中抽取出新的数组外,它还有一些其他的用法,下面就为大家讲这些妙用
经常的,可以看到Array.prototype.slice(arguments, 0); 这个写法可以用于function() {} 内,这样可以将函数的参数列表转换成一个真正的数组。请看一个例子:
复制代码 代码如下:

var slice = Array.prototype.slice;
var toString = Object.prototype.toString;
(function() {
  var args = arguments;
  console.log(args, toString.call(args)); // [1, 2, 3] "[object Arguments]"
  var argsArr = slice(args, 0);
  console.log(argsArr, toString.call(argsArr)); // [1, 2, 3] "[object Array]"
}(1,2,3))

我们可以看到函数的参数列表arguments通过slice调用以后,一秒钟变Array了。
同样的,也可以将选中的DOM元素转换成数组:
复制代码 代码如下:

slice.call(document.querySelectorAll("div"));

顺藤摸瓜,我们想想,slide方法是否可以将对象转换成数组呢?请看例子:
复制代码 代码如下:

console.log(slice.call('string')); // ["s", "t", "r", "i", "n", "g"]
console.log(slice.call(new String('string'))); // ["s", "t", "r", "i", "n", "g"]

每次,字符串会直接被转换成了一个数组。
但是,数字,布尔值的会转换成一个空的数组:
复制代码 代码如下:

console.log(slice.call(33));
console.log(slice.call(true));

普通的对象也会被转换成空数组,除非你给它加上一个length属性:
复制代码 代码如下:

console.log(slice.call({name: 'obj'})); // []
console.log(slice.call({0: 'zero', 1: 'one'})); // []
console.log(slice.call({0: 'zero', 1: 'one', name: 'obj', length: 2}));  // ["zero", "one"]

还有,它还可以用来clone数组:
复制代码 代码如下:

var srcArr = [1,2,3];
var newArr = srcArr.slice(0);
console.log(srcArr, newArr);    // [1,2,3] [1,2,3]
console.log(srcArr == newArr);  // false

相关文章

  • JavaScript实现获取两个排序数组的中位数算法示例

    JavaScript实现获取两个排序数组的中位数算法示例

    这篇文章主要介绍了JavaScript实现获取两个排序数组的中位数算法,涉及javascript数组遍历及数值计算相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • javascript匀速运动实现方法分析

    javascript匀速运动实现方法分析

    这篇文章主要介绍了javascript匀速运动实现方法,结合实例形式分析了JavaScript匀速运动的具体实现步骤与相关注意事项,需要的朋友可以参考下
    2016-01-01
  • JavaScript高级教程之如何玩转箭头函数

    JavaScript高级教程之如何玩转箭头函数

    箭头函数是在es6中添加的一种规范,箭头函数相当于匿名函数,简化了函数的定义,下面这篇文章主要给大家介绍了关于JavaScript高级教程之如何玩转箭头函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 微信小程序实现循环嵌套数据选择

    微信小程序实现循环嵌套数据选择

    这篇文章主要为大家详细介绍了微信小程序实现循环嵌套数据选择,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • JavaScript使用简单正则表达式的数据验证功能示例

    JavaScript使用简单正则表达式的数据验证功能示例

    这篇文章主要介绍了JavaScript使用简单正则表达式的数据验证功能,结合实例形式分析了JS针对表单输入内容的简单正则验证操作技巧,需要的朋友可以参考下
    2017-01-01
  • js常用DOM方法详解

    js常用DOM方法详解

    本文主要介绍了js常用的DOM方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js前端上传文件缩略图技巧示例详解

    js前端上传文件缩略图技巧示例详解

    这篇文章主要为大家介绍了js前端上传文件缩略图技巧示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 多种方法实现JS动态添加事件

    多种方法实现JS动态添加事件

    JS动态添加事件的方法有很多,我们可以使用setAttribute、attachEvent 和 addEventListener等等,感兴趣的朋友可以参考下
    2013-11-11
  • 在微信小程序中保存网络图片

    在微信小程序中保存网络图片

    这篇文章主要介绍了在微信小程序中保存网络图片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • 多种方法实现load加载完成后把图片一次性显示出来

    多种方法实现load加载完成后把图片一次性显示出来

    如何一个load 加载完成后把图片一次性显示出来,下面有个不错的方法,希望对大家有所帮助
    2014-02-02

最新评论