摘要:參數(shù)數(shù)組片段結(jié)束處的后一個元素的數(shù)組下標。返回值一個新數(shù)組,包含從到不包括該元素指定的元素。描述方法將返回數(shù)組的一部分,或者說是一個子數(shù)組。輸出因為此方法不會在每一個元素的基礎(chǔ)上再次執(zhí)行匹配。
array.slice(start, end)
參數(shù)start
數(shù)組片段開始處的數(shù)組下標。如果是負數(shù),它聲明從數(shù)組尾部開始算起的位置。 也就是說,-1指最后一個元素,-2指倒數(shù)第二個元素,以此類推。
參數(shù)end
數(shù)組片段結(jié)束處的后一個元素的數(shù)組下標。如果沒有指定這個參數(shù) 包含從start開始到數(shù)組結(jié)束的所有元素。如果這個參數(shù)是負數(shù), 從數(shù)組尾部開始算起的元素。
返回值
一個新數(shù)組,包含從start到end(不包括該元素)指定的array元素。
描述
方法slice()將返回數(shù)組的一部分,或者說是一個子數(shù)組。返回的數(shù)組包含從start 開始到end之間的所有元素,但是不包括end所指的元素。如果沒有指定end,返回的數(shù)組包含從start開始到原數(shù)組結(jié)尾的所有元素。
var a = [1,2,3,4,5]; a.slice(0,3); // 返回 [1,2,3] a.slice(3); // 返回 [4,5] a.slice(1,-1); // 返回 [2,3,4]
注意:該方法并不修改數(shù)組。如果想刪除數(shù)組中的一段元素,應該使用方法Array.splice。
使用 Array#slice 拷貝數(shù)組var len = items.length; var itemsCopy = []; var i; // bad for (i = 0; i < len; i++) { itemsCopy[i] = items[i]; } // good itemsCopy = items.slice();使用 Array#slice 將類數(shù)組對象轉(zhuǎn)換成數(shù)組。
var nodesArr = Array.prototype.slice.call(document.querySelectorAll("div")); // "true" array of DIVs // 得到一個由 div 元素組成的“真正的”數(shù)組 var argsArr = Array.prototype.slice.call(arguments); // changes arguments to "true" array // 把 arguments 轉(zhuǎn)換成一個“真正的”數(shù)組Array.prototype.sort
不僅可以對簡單類型的數(shù)組項進行排序,可以通過屬性來排序?qū)ο蟆H绻奶旆?wù)器端發(fā)來一段 JSON 數(shù)據(jù),而且其中的對象需要排序
[ { name: "Robin Van PurseStrings", age: 30 }, { name: "Theo Walcott", age: 24 }, { name: "Bacary Sagna", age: 28 } ].sort(function(obj1, obj2) { // 實現(xiàn)增序排列:前者的 age 小于后者 return obj1.age - obj2.age; }); // Returns: // [ // { name: "Theo Walcott", age: 24 }, // { name: "Bacary Sagna", age: 28 }, // { name: "Robin Van PurseStrings", age: 30 } // ]用 length 屬性來截斷數(shù)組
傳對象只是傳引用,我們經(jīng)常會試圖 把一個數(shù)組清空,但實際上卻錯誤地創(chuàng)建了一個新數(shù)組。
var myArray = yourArray = [1, 2, 3]; // 囧 myArray = []; // `yourArray` 仍然是 [1, 2, 3] // 正確的方法是保持引用 myArray.length = 0; // `yourArray` 和 `myArray`(以及其它所有對這個數(shù)組的引用)都變成 [] 了使用 push 來合并數(shù)組
使用 push 方法來合并數(shù)組:
var mergeTo = [4,5,6]; var mergeFrom = [7,8,9]; Array.prototype.push.apply(mergeTo, mergeFrom); mergeTo; // is: [4, 5, 6, 7, 8, 9]高效探測功能特性和對象屬性
很多時候我們會像下面這樣來探測瀏覽器的某個特性:
if(navigator.geolocation) { // 在這里干點事情 }
當然這可以正常工作,但它并不一定有很好的效率。因為這個對象探測方法會在瀏覽器中初始化資源。在過去,上面的代碼片斷可能會在某些瀏覽器下導致內(nèi)存泄露。更好、更快的方法是檢查對象是否包含某個鍵名:
if("geolocation" in navigator) { // 在這里干點事情 }
鍵名檢查十分簡單,而且可以避免內(nèi)存泄露。
數(shù)組的 indexOflet arr = ["orange", "2016", "2016"]; arr.indexOf("orange"); //0 arr.indexOf("o"); //-1 arr.indexOf("2016"); //1 arr.indexOf(2016); //-1
arr.indexOf(‘orange") 輸出 0 因為 ‘orange" 是數(shù)組的第 0 個元素,匹配到并返回下標。
arr.indexOf(‘o") 輸出 -1 因為此方法不會在每一個元素的基礎(chǔ)上再次執(zhí)行 indexOf 匹配。
arr.indexOf(‘2016") 輸出 1 因為此方法從頭匹配直到匹配到時返回第一個數(shù)組元素的下表,而不是返回全部匹配的下標。
arr.indexOf(2016) 輸出 -1 注意:這里不會做隱式類型轉(zhuǎn)換。
MDN上面的說明:
indexOf() compares searchElement to elements of the Array using
strict equality (the same method used by the === or triple-equals operator).
這里用的是嚴格等于(===)。做類似判斷的時候多留意,數(shù)字不會轉(zhuǎn)成字符串,同理字符串也不會轉(zhuǎn)換成數(shù)字。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81453.html
摘要:不可變對象不允許對自身內(nèi)容進行修改。因為他們說到不可變對象時用的是賦值,而說到可變對象又用了的索引等方法,這根本是兩碼事。基于這一設(shè)定,兩者在功能上的最大區(qū)別就是不可變對象可以作為字典的鍵,而可變對象不行。 前陣子我們聊了下函數(shù)的參數(shù)傳遞以及變量賦值的一些內(nèi)容:關(guān)于函數(shù)參數(shù)傳遞,80%人都錯了 簡單回顧下要點: 1. Python 中的變量不是裝有對象的 容器 ,而是貼在對象上的 標簽...
摘要:代碼只是狀態(tài)機圖的相關(guān)元素的一種表現(xiàn)形式,它與節(jié)點式或表格式的狀態(tài)機圖并無本質(zhì)不同。如上,狀態(tài)機是防止代碼失控的一劑良藥,制備完善的狀態(tài)機圖就是防止代碼失控的一種有效手段。 前言 前幾天和某某同學吃飯席間,他聊到每當要修改老項目中自己寫的代碼時就痛苦不堪,問我是不是也有同感。我覺得這應該是不少程序猿的心聲,之所以會這樣,大致有兩個主因: 項目的整體設(shè)計很糟糕,只管往上堆砌各種功能、補...
摘要:一基礎(chǔ)接口的意義百度規(guī)范擴展回調(diào)抽象類的意義我的前端面試經(jīng)歷百度前端掘金博主就讀于電子科技大學,大三狗一枚面試是個漫長的過程,從海投到收獲電話面試,一面二面三面,一個步驟出錯那么后面就宣告終結(jié)。 一道常被人輕視的前端 JS 面試題 - 前端 - 掘金 目錄前言第一問第二問變量聲明提升函數(shù)表達式第三問第四問第五問第六問構(gòu)造函數(shù)的返回值第七問最后前言 年前剛剛離職了,分享下我曾經(jīng)出過的一道...
摘要:限制表單的數(shù)據(jù)集的值必須為字符而支持整個字符集通用字符集。因此對于提交時,傳輸數(shù)據(jù)就會受到長度的限制。但實際各個服務(wù)器會規(guī)定對提交數(shù)據(jù)大小進行限制,都有各自的配置。這一般用于識別該用戶是否擁有合法的操作權(quán)限,提高了數(shù)據(jù)的安全性。 這里排版可能不是太好,詳情看我的簡書 form表單有什么作用? 表單的作用是搜集用戶的輸入,用戶提交表單時向服務(wù)器傳輸數(shù)據(jù),從而實現(xiàn)用戶與web服務(wù)器的交互。...
閱讀 2909·2021-11-17 09:33
閱讀 1630·2021-10-12 10:13
閱讀 2425·2021-09-22 15:48
閱讀 2313·2019-08-29 17:19
閱讀 2587·2019-08-26 11:50
閱讀 1565·2019-08-26 10:37
閱讀 1732·2019-08-23 16:54
閱讀 2917·2019-08-23 14:14