国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript Array.prototype.slice的使用示例

2024-05-06 15:55:05
字體:
供稿:網(wǎng)友
javascript Array.prototype.slice除了常見的從某個數(shù)組中抽取出新的數(shù)組外,它還有一些其他的用法,下面就為大家講這些妙用

經(jīng)常的,可以看到Array.prototype.slice(arguments, 0); 這個寫法可以用于function() {} 內(nèi),這樣可以將函數(shù)的參數(shù)列表轉(zhuǎn)換成一個真正的數(shù)組。請看一個例子:

復(fù)制代碼 代碼如下:


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))


我們可以看到函數(shù)的參數(shù)列表arguments通過slice調(diào)用以后,一秒鐘變Array了。
同樣的,也可以將選中的DOM元素轉(zhuǎn)換成數(shù)組:

復(fù)制代碼 代碼如下:


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


順藤摸瓜,我們想想,slide方法是否可以將對象轉(zhuǎn)換成數(shù)組呢?請看例子:

復(fù)制代碼 代碼如下:


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


每次,字符串會直接被轉(zhuǎn)換成了一個數(shù)組。
但是,數(shù)字,布爾值的會轉(zhuǎn)換成一個空的數(shù)組:

復(fù)制代碼 代碼如下:


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


普通的對象也會被轉(zhuǎn)換成空數(shù)組,除非你給它加上一個length屬性:

復(fù)制代碼 代碼如下:


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數(shù)組:

復(fù)制代碼 代碼如下:


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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 灌南县| 子长县| 寻乌县| 曲靖市| 分宜县| 乌兰浩特市| 韩城市| 平谷区| 巴东县| 绥芬河市| 双峰县| 霍林郭勒市| 枣庄市| 喀喇沁旗| 贺州市| 彭泽县| 威远县| 朝阳县| 盖州市| 华蓥市| 蚌埠市| 外汇| 安康市| 黔西县| 响水县| 司法| 枞阳县| 台南市| 同仁县| 南乐县| 盐源县| 德钦县| 安塞县| 平顺县| 伊春市| 衡东县| 革吉县| 来凤县| 石泉县| 大姚县| 临沂市|