国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS數(shù)組

NSFish / 3210人閱讀

摘要:如果沒有符合條件的成員,則返回返回查找到的該成員該方法與類似,對數(shù)組中的成員依次執(zhí)行函數(shù),直至找到第一個(gè)返回值為的成員,然后返回該成員的索引。

摘要

最近學(xué)習(xí)了JS數(shù)組的基礎(chǔ)知識,在這里呢總結(jié)一下,包括js數(shù)組的屬性與方法,js數(shù)組常常遇到的一些問題,小編通過查閱一些網(wǎng)上的知識,把關(guān)于數(shù)組的東西進(jìn)行了羅列,希望各位大神多多指點(diǎn)!

數(shù)組屬性

length
length屬性表示數(shù)組的長度,即其中元素的個(gè)數(shù)。
JavaScript數(shù)組的length屬性是可變的,當(dāng)length屬性被設(shè)置得更大時(shí),整個(gè)數(shù)組的狀態(tài)事實(shí)上不會發(fā)生變化,僅僅是length屬性變大;當(dāng)length屬性被設(shè)置得比原來小時(shí),則原先數(shù)組中索引大于或等于length的元素的值全部被丟失。

prototype
返回對象類型原型的引用。prototype 屬性是 object 共有的。
一般用來給數(shù)組實(shí)例添加方法。

constructor
表示創(chuàng)建對象的函數(shù)。
說明:constructor 屬性是所有具有 prototype 的對象的成員。constructor 屬性保存了對構(gòu)造特定對象實(shí)例的函數(shù)的引用。

基本操作

創(chuàng)建數(shù)組

// 數(shù)組實(shí)例的創(chuàng)建
var arr = [];//創(chuàng)建空數(shù)組
var arr = [1,"{1,2}","string"];//創(chuàng)建一個(gè)數(shù)組并賦值
var arr = new Array(); //創(chuàng)建一個(gè)空數(shù)組 []
var arr = new Array(5); //創(chuàng)建一個(gè)length為5的數(shù)組 [undefined, undefined, undefined, undefined, undefined]
var arr = new Array(1,2,3,4,5); //創(chuàng)建數(shù)組并賦值 [1,2,3,4,5]
var arr = Array.of(7);       // 創(chuàng)建數(shù)組并賦值 [7] 
var arr = Array.of(1, 2, 3); // 創(chuàng)建數(shù)組并賦值 [1, 2, 3]

檢測數(shù)組

//判斷一個(gè)對象是不是數(shù)組
var arr = [1,8,9];
/*
方法一  instanceof是Java、php的一個(gè)二元操作符(運(yùn)算符),和==,>,<是同一類東西,它的作用是判斷其左邊對象是否為其右邊類的實(shí)例,返回boolean類型的數(shù)據(jù)
 */
if(arr instanceof Array){}

/*
 方法二   prototype 屬性使您有能力向?qū)ο筇砑訉傩院头椒?*/
if(Object.prototype.toString.call(arr) == "[object Array]")}{}
//方法三 這種是最常用的方法
if(Array.isArray(arr)){}
/*
    方法四    constructor 屬性返回對創(chuàng)建此對象的數(shù)組函數(shù)的引用,Construction代表類中的一個(gè)構(gòu)造方法,這個(gè)方法封裝了類的定義
*/
if(arr.constructor == Array){}
數(shù)組方法

① isArray()

Array.isArray(obj) 檢測對象是否 Array(數(shù)組) ,是則返回true,否則為false。

② from()

Array.from(arrayLike, mapFn, thisArg)
該方法從一個(gè)類似數(shù)組或可迭代對象創(chuàng)建一個(gè)新的數(shù)組實(shí)例。參數(shù) arrayLike 是想要轉(zhuǎn)換成真實(shí)數(shù)組的類數(shù)組對象或可遍歷對象。mapFn是可選參數(shù),如果指定了該參數(shù),則最后生成的數(shù)組會經(jīng)過該函數(shù)的加工處理后再返回。thisArg是可選參數(shù),為執(zhí)行 mapFn 函數(shù)時(shí) this的值。

所謂類似數(shù)組的對象,本質(zhì)特征只有一點(diǎn),即必須有l(wèi)ength屬性。因此,任何有l(wèi)ength屬性的對象,都可以通過Array.from方法轉(zhuǎn)為數(shù)組。見下面的小例子:

var  arrayLike = {
    0: "a",
    1: "b",
    2: "c",
    length: 3
 }
var  arrayLike2 = {length: 3}
var  str = "abcd"

var  newArray = Array.from(arrayLike) //["a", "b", "c"]
var  newArray2 = Array.from(arrayLike2) // [undefined, undefined, undefined]
var  newArray3 = Array.from(str) // ["a", "b", "c", "d"]
console.log(newArray);
console.log(newArray2);
console.log(newArray3);

③ of();

Array.of(item,.....) 該方法用于創(chuàng)建數(shù)組實(shí)例。該方法用于替代 Array() 或 new Array()。Array.of() 和 Array 構(gòu)造函數(shù)之間的區(qū)別在于處理整數(shù)參數(shù):Array.of(7) 創(chuàng)建一個(gè)具有單個(gè)元素 7 的數(shù)組,而 Array(7) 創(chuàng)建一個(gè)包含 7 個(gè) undefined 元素的數(shù)組。
eg:
var a1 = Array(7);
var a2 = Array(1,2,12);
var a3 = Array.of(7);
var a4 =Array.of(1,2,12);
console.log(a1);
console.log(a2);
console.log(a3);
console.log(a4);

數(shù)組實(shí)例方法

數(shù)組的轉(zhuǎn)換
① 數(shù)組轉(zhuǎn)換成字符串 Array.join(separator);.

把數(shù)組轉(zhuǎn)換成字符串,先把數(shù)組中的每個(gè)元素轉(zhuǎn)換成字符串,然后再用 separator 分隔符把它們鏈接在一起,separator 分隔符默認(rèn)是逗號 “,”,要想做到無間隔鏈接,可以使用空字符串作為 separator:見下面的例子:

var arr = [1,2,3,4,5]
//默認(rèn)符號 ","
var a1 = arr.join();//1,2,3,4,5
//自定義符號“ | ”
var a2=arr.join("|") //"1|2|3|4|5"
// 沒有符號,用空字符串
var a3=arr.join("") //12345
console.log(a1);
console.log(a2);
console.log(a3);

② 字符串轉(zhuǎn)換成數(shù)組 a.split();

var arr = [1,2,3,4,5]
//arr 轉(zhuǎn)換成字符串并賦值給 a
var a = arr.join();
// 再把 a 轉(zhuǎn)換成 數(shù)組,并用“ , ”隔開
var b = a.split(",");
console.log(b);

棧方法 (push pop)

Array.push(item......)將一個(gè)或多個(gè)新元素添加到數(shù)組結(jié)尾,并返回數(shù)組新長度
var arr = ["Orange","Apple"];
var a = arr.push("banana","Mango");
console.log(a);//返回?cái)?shù)值長度為  4
Array.pop() 移除最后一個(gè)元素并返回該元素值。
var arr = ["Orange","Apple"];
var a = arr.pop();
console.log(a);// 移除最后一個(gè)元素 返回最后一個(gè)值A(chǔ)pple

隊(duì)列方法 (unshift shift)

Array.unshift(item...);將一個(gè)或多個(gè)新元素添加到數(shù)組開始,數(shù)組中的元素自動后移,返回?cái)?shù)組新長度。
var arr = ["Orange","Apple"];
var a = arr.unshift("banana");
console.log(a);//   返回新數(shù)組的長度為  3
Array.shifit();移除最前一個(gè)元素并返回該元素值,數(shù)組中元素自動前移.如果這個(gè)數(shù)組是空的,它會返回undefined。shift 通常比 pop 慢的多。
var arr = ["Orange","Apple","banana"];
var arr1 = [];
var a1 = arr1.shift();
var a2 = arr.shift();
console.log(a1);//  空數(shù)組返回undefined
console.log(a2);//   移除第一個(gè)元素,并返回該元素  Orange

重排序方法(reverse, sort)

Array.reverse() 顛倒數(shù)組的順序
var arr = ["Orange","Apple","banana"];
var a = arr.reverse();
console.log(a);

Array.sort() 給數(shù)組排序, 默認(rèn)升序。 sort 默認(rèn)會將數(shù)組內(nèi)容視為字符串來排序,所以對數(shù)字排序時(shí)默認(rèn)的排序規(guī)則會錯(cuò)的離譜,看下面的例子是怎么錯(cuò)的:

var arr = [2,4,10,6,8,20];
var a = arr.sort();
console.log(a);

解決這種按照字符串來排序的方法就是給sort帶入個(gè)比較函數(shù)來替代原來默認(rèn)的比較方法,比較方法接受兩個(gè)參數(shù),如果兩個(gè)參數(shù)相等則返回0,如果第一個(gè)參數(shù)應(yīng)該排在前面則返回一個(gè)負(fù)數(shù),如果第二個(gè)參數(shù)應(yīng)該排在前面則返回一個(gè)正數(shù):

var arr = [2,4,10,6,8,20];
var a = arr.sort(function(a,b){
    return a-b;
});
console.log(a);

操作方法 ( concat, slice, splice, copyWithin, fill )

Array.concat(arr);該方法產(chǎn)生一份 arr的潛復(fù)制,并將多個(gè)數(shù)組(也可以是字符串,或者是數(shù)組和字符串的混合)附加在其后連接為一個(gè)數(shù)組,返回連接好的新的數(shù)組。
var a = [1,2,3];
var b = ["string"];
var arr = a.concat(b);
console.log(arr);

Array.slice(start,end)   截取數(shù)組 ,如果沒有  end  ,則輸出  start
之后的所有元素,這里遵循數(shù)學(xué)上的思想(左閉右開),意思就是不包括 end --------[ )
var a = [1,2,3];
var b = ["string"];
var arr = a.concat(b);
var arr1 = arr.slice(1, 3);
console.log(arr1);

Array.splice(start,deleteCount,item...),該方法從 數(shù)組 中移除一個(gè)或多個(gè)元素,并將新的 item插入至移除元素的開始位置, 參數(shù) start 是移除元素的開始位置,deleteCount 是要移除的元素的個(gè)數(shù),item是要被插入的元素。它返回一個(gè)包含被移除元素的數(shù)組。

① 添加新的元素

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    //在第三個(gè)元素的位置插入新的元素
    fruits.splice(2,0,"Lemon","Kiwi");
    console.log(fruits);

② 刪除某個(gè)元素并添加新的元素

 var fruits = ["Banana", "Orange", "Apple", "Mango"];
   //先移除從第二個(gè)位置開始后面的兩個(gè)元素,并把新的元素添加到第二個(gè)位置
    fruits.splice(1,2,"Lemon")
    console.log(fruits);

Array.copyWithin(target,start,end)  
target必須有的,復(fù)制到指定目標(biāo)的索引位置(開始替換數(shù)據(jù)的位置),start可選,元素復(fù)制的起始位置,end 停止復(fù)制的索引位置,默認(rèn)為 Array.length 返回值是數(shù)組
    var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
    //復(fù)制數(shù)組的前面兩個(gè)元素到第三和第四個(gè)位置上,這里也遵循左閉右開的思想,也就是 strat=0,end=2 這樣理解  [0,2)
        fruits.copyWithin(2, 0, 2);
        console.log(fruits);

Array.fill(value,start,end) 
fill()方法用于將一個(gè)固定值替換數(shù)組的元素,value是必選的,start可選,開始填充的位置,end可選,表示停止填充位置(默認(rèn)為Array.length),返回的是數(shù)組
 var  a = [1,2,3,4,6];
   console.log(a.fill(5,2,4) );

位置方法 (indexOf, lastIndexOf, includes)

Array.indexOf(item,start)
item是必須要查找的元素,start 可選,規(guī)定在字符串中開始檢索的位置,合法取值為 0 到 array.length-1 ,如果沒有這個(gè)值,則從首字符開始查找,返回值為Number
var arr = ["Banana", "Orange", "Apple", "Mango", "Kiwi"];
var a =  arr.indexOf("Orange");
 console.log(a);//返回值為  1
Array.lastIndexOf(item,start)
和indexOf 類似 唯一區(qū)別就是他是倒著數(shù),strat的默認(rèn)值為 array.length-1 ,注意該方
法在比較查找項(xiàng)與數(shù)組中每一項(xiàng)時(shí),會使用全等操作符(===),也就是要求查找的項(xiàng)必須嚴(yán)格相等
        var arr = ["Banana", "Orange", "Apple", "Mango", "Kiwi"];
        var a =  arr.lastIndexOf("Kiwi");
         console.log(a);//返回值為  4
Array.includes(searchElement, fromIndex)
includes() 方法用來判斷一個(gè)數(shù)組是否包含一個(gè)指定的值,如果是返回 true,否則false.
fromIndex可選。從該索引處開始查找 searchElement。如果為負(fù)值,則按升序從 array.length +fromIndex 的索引開始搜索。默認(rèn)為 0。
 var  arr =  ["Banana", "Orange", "Apple", "Mango", "Kiwi"];
 var  a = arr.includes("Apple",-2);//如果為fromIndex為負(fù)值,則數(shù)組的總長度  arr.length + fromIndex   就為當(dāng)前我們要從這個(gè)位置開始檢索的位置
console.log(a);//   返回  false

迭代方法 (every, some, filter, forEach, map, find, findIndex, entries, keys, values)

Array.every(function(currentValue,index,arr), thisValue)
這個(gè)方法用于檢索數(shù)組中所有的元素是否滿足某個(gè)條件,若滿足,則返回true ,剩余元素不用繼續(xù)檢測,否則為false
           var  arr = [18,16,17,20];
            var a = arr.every(function(item){
                return  item > 18;
            });
            console.log(a);//返回false
Array.some(function(currentValue,index,arr), thisValue)
這個(gè)方法用于檢索數(shù)組中的元素是否滿足某個(gè)條件,若有一個(gè)滿足,則返回true ,剩余元素不用繼續(xù)檢測,都不滿足返回false
           var  arr = [18,16,17,20];
            var a = arr.some(function(item){
                return  item > 18;
            });
            console.log(a);//返回 true
Array.filter(function(currentValue,index,arr), thisValue)
對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會返回 true 的項(xiàng)組成的數(shù)組
           var  arr = [18,16,17,20];
            var a = arr.filter(function(item){
                return  item > 17;
            });
            console.log(a);//返回 一個(gè)檢索過后的新數(shù)組

Array.forEach(function(currentValue, index, arr), thisValue)

對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),這個(gè)方法的返回值為undefined;

array.map(function(currentValue,index,arr), thisValue)
對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用組成的數(shù)組
           var  arr = [4,16,25,36];
            var a = arr.map(function(item){
                return  Math.sqrt(item);
            });
            console.log(a);//返回?cái)?shù)組元素的平方根

Array.find(function(currentValue, index, arr),thisValue)
該方法對數(shù)組所有成員依次執(zhí)行函數(shù),直到找出第一個(gè)返回值為 true 的成員,然后返回該成員。如果沒有符合條件的成員,則返回 undefined
           var  arr = [4,16,25,36];
            var a = arr.find(function(item){
                return  item == 25;
            });
            console.log(a);//返回查找到的該成員  25 
Array.findIndex(function(currentValue, index, arr), thisValue)
該方法與 Arr.find() 類似,對數(shù)組中的成員依次執(zhí)行 函數(shù),直至找到第一個(gè)返回值為 true 的成員,然后返回該成員的索引。如果沒有符合條件的成員,則返回 -1
           var  arr = [4,16,25,36];
            var a = arr.findIndex(function(item){
                return  item == 25;
            });
            console.log(a);//返回查找到的該成員的索引值  2
            
Array.entries()

Array.keys()

Array.values()

這三個(gè)方法都返回一個(gè)新的Array Iterator對象,可以用for...of循環(huán)進(jìn)行遍歷,區(qū)別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷

歸并方法(reduce, reduceRight)

Array.reduce(function(total, currentValue, currentIndex, arr),
initialValue)
reduce() 方法接收一個(gè)函數(shù)作為累加器,數(shù)組中的每個(gè)值(從左到右)開始縮減,最終計(jì)算為一個(gè)值
            var  arr = [12,20,10];
            var a = arr.reduce(function(total,item){
                return  total+item;
            });
            console.log(a);//返回和的結(jié)果為  42
reduceRight() 方法的功能和 reduce() 功能是一樣的,不同的是 reduceRight()
從數(shù)組的末尾向前將數(shù)組中的數(shù)組項(xiàng)做累加
            var  arr = [12,20,10];
            var a = arr.reduceRight(function(total,item){
                return  total+item;
            });
            console.log(a);//返回和的結(jié)果為  42

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/52663.html

相關(guān)文章

  • PHP: array數(shù)組常用API

    摘要:語法數(shù)組刪除數(shù)組的最后一項(xiàng)語法數(shù)組在數(shù)組的最末添加一項(xiàng)語法數(shù)組刪除數(shù)組的首項(xiàng)語法數(shù)組在數(shù)組的首部添加一項(xiàng)案例分析 1:數(shù)組的指針操作: 語法:current(數(shù)組) 當(dāng)前指針指向的單元值(默認(rèn)是第零個(gè))語法 next(數(shù)組) 當(dāng)前指針往下移動一幀語法 prev(數(shù)組) 當(dāng)前指針往前移動一個(gè)指針語法 end(array) 將當(dāng)前指針移動到最后一項(xiàng)語法 ...

    Cheriselalala 評論0 收藏0
  • 16道初級腳本算法,你要挑戰(zhàn)一下嗎?

    摘要:設(shè)置首字母大寫算法挑戰(zhàn)返回一個(gè)字符串確保字符串的每個(gè)單詞首字母都大寫,其余部分小寫。確認(rèn)末尾字符算法檢查一個(gè)字符串是否以指定的字符串結(jié)尾。刪除數(shù)組中特定值算法挑戰(zhàn)刪除數(shù)組中的所有的假值。 在w3cschool上看到了這些初級算法題目,自己先嘗試做了一下,不會的也會查看一下別人的借鑒一下思路,更多的幫助自己熟悉字符串和數(shù)組方法的應(yīng)用.如果您有更好的解法,可以指出來還有中級算法題目和后面的...

    kumfo 評論0 收藏0
  • 細(xì)說JS數(shù)組

    摘要:數(shù)組元素的讀寫使用訪問數(shù)組元素時(shí),將索引轉(zhuǎn)換為字符串,然后將其作為屬性名一樣使用。第一個(gè)參數(shù)應(yīng)該在前只展開一層數(shù)組元素不變,返回注意,只拼接第一層結(jié)構(gòu)。 此乃犀牛書(第七章 數(shù)組)讀書筆記,又結(jié)合了ES6中數(shù)組的擴(kuò)展部分做的知識梳理。精華部分就是手工繪制的兩張數(shù)組總結(jié)圖了。靈活運(yùn)用數(shù)組的各種方法是基本功,是基本功,是基本功,重要的事情說三遍。好了,正文從下面開始~ 數(shù)組的基本概念 什么...

    starsfun 評論0 收藏0
  • JavaScript30秒, 從入門到放棄之Array(六)

    摘要:從數(shù)組索引為開始刪除元素,直到對數(shù)組元素運(yùn)用指定方法為為止。對兩個(gè)數(shù)組的元素分別調(diào)用指定方法后,返回以運(yùn)行結(jié)果為判定基準(zhǔn)的并集,并集是原始數(shù)組元素的并集而不是運(yùn)行結(jié)果的并集。 原文地址:JavaScript30秒, 從入門到放棄之Array(六)博客地址:JavaScript30秒, 從入門到放棄之Array(六) 水平有限,歡迎批評指正 tail Returns all elem...

    Freeman 評論0 收藏0
  • 《JavaScript Dom編程藝術(shù)》讀書筆記(一)

    摘要:下面這條語句將導(dǎo)致語法錯(cuò)誤變量名允許包含字母數(shù)字美元符號和下劃線但第一個(gè)字符不允許是數(shù)字。可以把一些布爾值存入一個(gè)數(shù)組,還可以把一組數(shù)值存入一個(gè)數(shù)組甚至可以把這種數(shù)據(jù)類型混在一起存入一個(gè)數(shù)組數(shù)組元素還可以是變量這將把數(shù)組的第一個(gè)元素賦值為。 執(zhí)行Javascript的方式 第一種方式是將JS代碼放到 < head > 標(biāo)簽中的 < script > 標(biāo)簽之間: ...

    lewinlee 評論0 收藏0
  • 《JavaScript Dom編程藝術(shù)》讀書筆記(一)

    摘要:下面這條語句將導(dǎo)致語法錯(cuò)誤變量名允許包含字母數(shù)字美元符號和下劃線但第一個(gè)字符不允許是數(shù)字。可以把一些布爾值存入一個(gè)數(shù)組,還可以把一組數(shù)值存入一個(gè)數(shù)組甚至可以把這種數(shù)據(jù)類型混在一起存入一個(gè)數(shù)組數(shù)組元素還可以是變量這將把數(shù)組的第一個(gè)元素賦值為。 執(zhí)行Javascript的方式 第一種方式是將JS代碼放到 < head > 標(biāo)簽中的 < script > 標(biāo)簽之間: ...

    yeooo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<