Array.slice()與Array.splice()的返回值類型
更新時間:2006年10月09日 00:00:00 作者:
最近做個練習,用到Array.slice()和Array.splice(),以前沒有注意其返回值類型
Array.slice()返回Array -- 一個由原始數(shù)組中某一范圍的元素構成的數(shù)組。
Array.splice()返回Array -- 包含從原始數(shù)組中刪除的元素的一個數(shù)組。
返回的是一個數(shù)組,用typeof()看一下是object,這沒錯!需要提醒大家的是:
當數(shù)組元素是數(shù)字時,用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]);
也可以
Array.slice()返回Array -- 一個由原始數(shù)組中某一范圍的元素構成的數(shù)組。
Array.splice()返回Array -- 包含從原始數(shù)組中刪除的元素的一個數(shù)組。
返回的是一個數(shù)組,用typeof()看一下是object,這沒錯!需要提醒大家的是:
當數(shù)組元素是數(shù)字時,用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]);
也可以
您可能感興趣的文章:
- php數(shù)組函數(shù)array_push()、array_pop()及array_shift()簡單用法示例
- PHP array_shift()用法實例分析
- php通過array_shift()函數(shù)移除數(shù)組第一個元素的方法
- php中array_slice和array_splice函數(shù)解析
- PHP中unset,array_splice刪除數(shù)組中元素的區(qū)別
- 解析array splice的移除數(shù)組中指定鍵的值,返回一個新的數(shù)組
- php數(shù)組函數(shù)序列之a(chǎn)rray_splice() - 在數(shù)組任意位置插入元素
- js利用Array.splice實現(xiàn)Array的insert/remove
- php去掉數(shù)組的第一個值的兩個函數(shù):array_shift、array_splice
相關文章
辨析JavaScript中的Undefined類型與null類型
Undefined與null都是js中的基本數(shù)據(jù)類型,然而正如它們的名字那樣,未初始化和空并不相同,下面我們就來詳細辨析JavaScript中的Undefined類型與null類型:2016-05-05javascript定義變量時加var與不加var的區(qū)別
這篇文章主要介紹了javascript 變量中 var 與不加var的區(qū)別,需要的朋友可以參考下2014-12-12