当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Array.slice()与Array.splice()的返回值类型

Javascript
js 判断 enter 事件
谷歌浏览器 insertCell与appendChild的区别
从JavaScript 到 JQuery (1)学习小结
JavaScript实现动态增加文件域表单
JavaScript DOM 添加事件
Javascript 跨域访问解决方案
检测是否已安装 .NET Framework 3.5的js脚本
JavaScript 获得选中文本内容的方法
Javascript 获取链接(url)参数的方法
javascript Ext JS 状态默认存储时间
动态为事件添加js代码示例
JSON扫盲帖 JSON.as类教程
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
js实现权限树的更新权限时的全选全消功能
javascript Table 中2个列(TD)的交换实现代码
js表数据排序 sort table data
javascript css在IE和Firefox中区别分析
JAVASCRIPT IE 与 FF中兼容问题小结
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
csdn 批量接受好友邀请

Javascript 中的 Array.slice()与Array.splice()的返回值类型


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 398 ::
收藏到网摘: n/a

最近做个练习,用到Array.slice()和Array.splice(),以前没有注意其返回值类型
Array.slice()返回Array -- 一个由原始数组中某一范围的元素构成的数组。
Array.splice()返回Array -- 包含从原始数组中删除的元素的一个数组。
返回的是一个数组,用typeof()看一下是object,这没错!需要提醒大家的是:
当数组元素是数字时,用Array.slice()和Array.splice()取其中某个元素进行大小比较,可得要注意,必须转换
类型,这个很隐蔽,出错后很难查的
object类型不可以用Number()直接转换成number,需要先toString()/8@$
如:
var arr = [0, 1, 2];
var arr1 = [1, 2, 3];
for (var i = 0; i < arr.length; i++) {
trace (arr.slice (i,i+1)+"--"+typeof (arr.slice (i,i+1)));
//output--0--object.....
trace (arr1.slice (i,i+1)+"--"+typeof (arr1.slice (i,i+1)));
//output--1--object....
trace (arr.slice (i,i+1)<arr1.slice (i,i+1));
//output--false,,,,object不可比较大小
trace (arr.slice (i,i+1)>arr1.slice (i,i+1));
//output--false,,,,object不可比较大小
trace (Number(arr.slice (i,i+1))<Number(arr1.slice (i,i+1)));
//output--undefined,,,,object不可用Number()转换类型
trace (Number(arr.slice (i,i+1).toString())<Number(arr1.slice (i,i+1).toString()));
//output--true,先toString()再Number()就可以
}
trace (arr.slice (i,i+1)<arr1.slice (i,i+1));
trace (arr.slice (i,i+1)>arr1.slice (i,i+1));
写成  
trace (arr.slice (i,i+1)[0]<arr1.slice (i,i+1)[0]);
trace (arr.slice (i,i+1)[0]>arr1.slice (i,i+1)[0]);
也可以