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

資訊專欄INFORMATION COLUMN

js數(shù)組筆記

JinB / 3421人閱讀

摘要:一定義數(shù)組是按次序排列的一組值。整個(gè)數(shù)組用方括號(hào)表示,數(shù)組的值用,分割數(shù)組的數(shù)據(jù)可以是任何類型。原數(shù)組會(huì)會(huì)變化,截取的部分自動(dòng)為一個(gè)數(shù)組返回。否則,返回函數(shù)參數(shù)數(shù)組當(dāng)前項(xiàng)的值數(shù)組當(dāng)前項(xiàng)的索引數(shù)組對(duì)象本身返回值舉個(gè)例子不會(huì)改變?cè)瓟?shù)組

一、定義

數(shù)組(array)是按次序排列的一組值。每個(gè)值的位置都有編號(hào)(從0開(kāi)始)。整個(gè)數(shù)組用方括號(hào)表示,數(shù)組的值用","分割;數(shù)組的數(shù)據(jù)可以是任何類型。

本質(zhì)上,數(shù)組屬于一種特殊的對(duì)象,對(duì)應(yīng)的鍵名也是字符串"0", "1", "2"。。。。

var arr = ["a", "b", "c"];

Object.keys(arr)
// ["0", "1", "2"]
二、獲取數(shù)組值

只能通過(guò)arr[0]的方式來(lái)獲取數(shù)組值
因?yàn)槎鄮У臄?shù)值不能作為標(biāo)識(shí)符,arr.0的寫法不合法的。

var arr = [3, 4, 5, 6]
console.log(arr[3])      //6
console.log(arr[4])      //undefined
三、數(shù)組的基礎(chǔ)操作 1、length屬性

1)可以直接設(shè)置length長(zhǎng)度,沒(méi)有具體數(shù)值的數(shù)組值,會(huì)以空位填充

2)人為設(shè)置length小于當(dāng)前數(shù)組長(zhǎng)度,超過(guò)length長(zhǎng)度的數(shù)組的成員會(huì)被刪除
清空數(shù)組的方式,設(shè)置arr.length =0

var arr = [ "a", "b", "c" ];
arr.length // 3

arr.length = 2;
arr // ["a", "b"]
2、in 運(yùn)算符

1) 運(yùn)算符in用于檢查某個(gè)鍵名是否存在,適用于對(duì)象,也適用于數(shù)組。

var arr = [ "a", "b", "c" ];
2 in arr  // true
"2" in arr // true
4 in arr // false

2) 如果數(shù)組的某個(gè)位置是空位,in運(yùn)算符返回false

var arr = [];
arr[100] = "a";

100 in arr // true
1 in arr // false
3、push (在數(shù)組最后再添加一個(gè)元素)
arr.push("jirengu")      //再數(shù)組最后添加一個(gè)元素
console.log(arr)         // [3, 4, 5, 6, "hello", "jirengu"]
4、pop (刪除數(shù)組最后一位并返回?cái)?shù)值)
var value = arr.pop()    //把數(shù)組最后一位彈出來(lái),返回 
console.log(value)       //"jirengu"
5、unshift (在數(shù)組第一位插入一個(gè)數(shù)值)
arr.unshift("ruoyu")     //在數(shù)組第一位新增
console.log(arr)         //["ruoyu", 3, 4, 5, 6, "hello"]
6、shift(刪除數(shù)組第一位,并返回被刪除值)
var value2 = arr.shift() //把數(shù)組第一位拿出來(lái)返回,數(shù)組發(fā)生變化
console.log(value2)      // "ruoyu"
7、splice(替換數(shù)組的一部分,并把替換內(nèi)容作為新數(shù)組返回)

var arr2 = arr.splice(1, 2)
splice的第一個(gè)參數(shù):截?cái)嚅_(kāi)始的下標(biāo);splice的第二個(gè)參數(shù):截?cái)嚅L(zhǎng)度。之后的參數(shù)為替換的內(nèi)容。原數(shù)組會(huì)會(huì)變化,截取的部分自動(dòng)為一個(gè)數(shù)組返回。
用途一:截?cái)鄶?shù)組

arr= [3, 4, 5, 6, "hello"]

var arr2 = arr.splice(1, 2)         //從下標(biāo)為1的元素開(kāi)始,拿出來(lái)2個(gè)元素作為一個(gè)數(shù)組返回,原數(shù)組發(fā)生改變
console.log(arr)         // [3, 6, "hello"]
console.log(arr2)        //  [4, 5]

用途二:替換數(shù)組內(nèi)容

arr= [3, 6, "hello"]
arr.splice(1, 0, 8,9)    //從下標(biāo)為1的位置(元素6)開(kāi)始,刪除0個(gè),新增兩個(gè)元素(在6前面新增8,9)
console.log(arr)         //[3, 8, 9, 6, "hello"]
7、slice(截取數(shù)組)

slice的第一個(gè)參數(shù):開(kāi)始截?cái)嗟南聵?biāo);slice的第二個(gè)參數(shù):結(jié)束截?cái)鄶?shù)組的下標(biāo)(不包括這個(gè)數(shù))。原數(shù)組不會(huì)變化

arr=[3, 8, 9, 6, "hello"]
var arr3 = arr.slice(2,3)           //從 arr 下標(biāo)為2開(kāi)始,到下標(biāo)為3結(jié)束(不包括3),做為新數(shù)組,原數(shù)組不變
console.log(arr3)       // [9]
console.log(arr)        //[3, 8, 9, 6, "hello"]
8、join("-")(用某個(gè)符號(hào)連接數(shù)組所有的值,生成字符串)

原數(shù)組不變

arr=[3, 8, 9, 6, "hello"]

var str = arr.join("-")
console.log(str)        // "3-8-9-6-hello"
console.log(arr.join(",")); //"3,8,9,6,hello"
9、arr.concat(array) (連接兩個(gè)數(shù)組)

concat方法用于拼接數(shù)組,a.concat(b)返回一個(gè)a和b共同組成的新數(shù)組。
不會(huì)修改任何一個(gè)原始數(shù)組

var a = [1,2,3,4,5];
var b = [6,7,8,9];
console.log(a.concat(b));//[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(a); //[1, 2, 3, 4, 5]
console.log(b); //[6, 7, 8, 9]
10、reverse()數(shù)組逆序

用于將數(shù)組逆序,它會(huì)修改原數(shù)組

var a = [1,2,3,4,5];
a.reverse();
console.log(a); //[5, 4, 3, 2, 1]
11、sort(對(duì)數(shù)組進(jìn)行排序)

1)沒(méi)有參數(shù),默認(rèn)根據(jù)字符串Unicode碼來(lái)排序。

var a=[5,4,3,2,1]
a.sort()
console.log(a) //[1, 2, 3, 4, 5]
var a=[7,8,9,10,11]
a.sort()
console.log(a) //[10, 11, 7, 8, 9]

2)可以自定義一個(gè)排序方式,如arr.sort([compareFunction]),比較規(guī)則如下

如果 compareFunction(a, b) 小于 0 ,那么 a 會(huì)被排列到 b 之前;

如果 compareFunction(a, b) 等于 0 , a 和 b 的相對(duì)位置不變

如果 compareFunction(a, b) 大于 0 , b 會(huì)被排列到 a 之前

或者是按照true和false來(lái)判斷,true的話就會(huì)調(diào)換位置。
3)原數(shù)組會(huì)改變

var a = [7,8,9,10,11]

    a.sort(function(v1,v2){
        return v1-v2
    })
    console.log(a) //[7, 8, 9, 10, 11]

    var users = [
        {
            name: "aaa",
            age: 21
        },
        {
            name: "baa",
            age: 18
        },
        {
            name: "abc",
            age: 24
        }
    ]
    // 按age 從小到大排序

    var sortByAge = users.sort(function(v1, v2){
        return  v1.age > v2.age
    })

  // 按name從大到小排序
    var sortByName = users.sort(function(v1, v2){
        return  v1.name > v2.name
    })
四:ES5 數(shù)組拓展(注意駝峰寫法) 1、Array.isArray(arr)判斷是不是數(shù)組

這是Array對(duì)象的一個(gè)靜態(tài)函數(shù),用來(lái)判斷一個(gè)對(duì)象是不是數(shù)組

var a = [];
var b = new Date();
console.log(Array.isArray(a)); //true
console.log(Array.isArray(b)); //false
2、indexOf(element)/ lastIndexOf(element)尋找數(shù)組是否有對(duì)應(yīng)的內(nèi)容

這兩個(gè)方法用于查找數(shù)組內(nèi)指定元素位置,查找到第一個(gè)后返回其索引,沒(méi)有查找到返回-1,indexOf從頭至尾搜索,lastIndexOf反向搜索。

var arr =[2,3,5,7,3,9]
arr.indexOf(3) //1
3、forEach(function(element,index,arry))遍歷數(shù)組,對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)

1)原理:遍歷數(shù)組,參數(shù)為一個(gè)回調(diào)callback函數(shù),回調(diào)函數(shù)有三個(gè)參數(shù):

element:數(shù)組當(dāng)前項(xiàng)的值

index:數(shù)組當(dāng)前項(xiàng)的索引(可選)

array:數(shù)組對(duì)象本身(可選)

thisArg:當(dāng)執(zhí)行回調(diào) 函數(shù)時(shí)用作this的值。如果給forEach傳遞了thisArg參數(shù),當(dāng)調(diào)用時(shí),它將被傳給callback函數(shù),作為它的this值。否則,將會(huì)傳入 undefined 作為它的this值(可選,愛(ài)用不用)

2)注意:

數(shù)組內(nèi)已刪除或者未初始化的項(xiàng)不會(huì)遍歷到

返回值是:undefined,原數(shù)組會(huì)改變,這個(gè)和map和reduce不一樣

3)舉個(gè)例子

var arr=[1,2,5,6,8]
arr.forEach(function(e,i,arr){
arr[i]=e*e
})
console.log(arr)//?[1, 4, 25, 36, 64]
4、map(function(element,index,arry))遍歷數(shù)組,對(duì)數(shù)組的每個(gè)值執(zhí)行函數(shù)操作,并把結(jié)果返回新數(shù)組

1)原理:遍歷數(shù)組,對(duì)函數(shù)的每個(gè)值執(zhí)行回調(diào)函數(shù),返回值組成一個(gè)新數(shù)組。原數(shù)組不變
2)函數(shù)參數(shù):

element:數(shù)組當(dāng)前項(xiàng)的值

index:數(shù)組當(dāng)前項(xiàng)的索引(可選)

array:數(shù)組對(duì)象本身(可選)

thisArg:執(zhí)行 callback 函數(shù)時(shí)使用的this 值(可選)

3)返回值:
一個(gè)新數(shù)組,每個(gè)元素都是回調(diào)函數(shù)的結(jié)果

4)舉個(gè)例子

var obj2 =[{ key:1,value:2},
          { key:4,value:8},
          { key:5,value:78}]
var array= obj2.map(function(obj){
var arr2=[]
 arr2[obj.key] =obj.value
return arr2})})        
          
5、filter(function(element,index,arry))遍歷數(shù)組,對(duì)數(shù)組每一個(gè)元素執(zhí)行callback函數(shù),并將滿足條件的值返回新數(shù)組

1)原理:遍歷數(shù)組,對(duì)數(shù)組每一個(gè)元素執(zhí)行callback函數(shù),并將滿足條件的值返回新數(shù)組。原數(shù)組不變
2)函數(shù)參數(shù):

element:數(shù)組當(dāng)前項(xiàng)的值

index:數(shù)組當(dāng)前項(xiàng)的索引(可選)

array:數(shù)組對(duì)象本身(可選)

thisArg:執(zhí)行 callback 函數(shù)時(shí)使用的this 值(可選)

3)返回值:
一個(gè)新的通過(guò)測(cè)試的元素的集合的數(shù)組,如果沒(méi)有通過(guò)測(cè)試則返回空數(shù)組

4)舉個(gè)例子

var a =[2,3,4,5,7,9,6]
console.log(a.filter(function(e){
return e%2==0
}))  //[2, 4, 6]

參考文獻(xiàn)

6、reduce(function(v1, v2), value)遍歷數(shù)組,對(duì)數(shù)組的值依次兩兩執(zhí)行回調(diào)函數(shù),將兩個(gè)數(shù)組值合成一個(gè)值,reduce從索引最小值開(kāi)始

1)原理:對(duì)累計(jì)器和數(shù)組中的每個(gè)元素(從左到右)應(yīng)用一個(gè)函數(shù),將其簡(jiǎn)化為單個(gè)值。
2)函數(shù)參數(shù):

currentValue:數(shù)組中正在處理的元素

index:數(shù)組當(dāng)前項(xiàng)的索引(可選)

array:數(shù)組對(duì)象本身(可選)

Accumulator (累計(jì)器):累計(jì)器累計(jì)回調(diào)的返回值; 它是上一次調(diào)用回調(diào)時(shí)返回的累積值,或initialValue(初始值)

initialValue(初始值)(可選)作為第一次調(diào)用 callback函數(shù)時(shí)的第一個(gè)參數(shù)的值。 如果沒(méi)有提供初始值,則將使用數(shù)組中的第一個(gè)元素。在沒(méi)有初始值的空數(shù)組上調(diào)用 reduce 將報(bào)錯(cuò)

3)返回值:
函數(shù)累計(jì)處理的結(jié)果

4)舉個(gè)例子

var a = [1, 2, 3, 4, 5, 6]
var sumvalue= a.reduce(function(v1,v2){
return v1+v2})

將二維數(shù)組轉(zhuǎn)化為一維

var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
  function(a, b) {
    return a.concat(b);
  },
  []
);
// flattened is [0, 1, 2, 3, 4, 5]

mdn文檔
5)要點(diǎn)
回調(diào)函數(shù)第一次執(zhí)行時(shí),accumulator 和currentValue的取值有兩種情況:如果調(diào)用reduce()時(shí)提供了initialValue,accumulator取值為initialValue,currentValue取數(shù)組中的第一個(gè)值;如果沒(méi)有提供 initialValue,那么accumulator取數(shù)組中的第一個(gè)值,currentValue取數(shù)組中的第二個(gè)值

7、every(function(element, index, array))測(cè)試數(shù)組的所有元素是否都通過(guò)了指定函數(shù)的測(cè)試

1)原理:
every 方法為數(shù)組中的每個(gè)元素執(zhí)行一次 callback 函數(shù),直到它找到一個(gè)使 callback 返回 false(表示可轉(zhuǎn)換為布爾值 false 的值)的元素。如果發(fā)現(xiàn)了一個(gè)這樣的元素,every 方法將會(huì)立即返回 false。否則,callback 為每一個(gè)元素返回 true,every 就會(huì)返回 true
2)函數(shù)參數(shù):

element:數(shù)組當(dāng)前項(xiàng)的值

index:數(shù)組當(dāng)前項(xiàng)的索引(可選)

array:數(shù)組對(duì)象本身(可選)

thisArg:執(zhí)行 callback 函數(shù)時(shí)使用的this 值(可選)

3)返回值:
true/false

4)舉個(gè)例子

var a = [1, 2, 3, 4, 5, 6]

console.log(a.every(function(e){
return e>0}))  //true

5)every不會(huì)改變?cè)瓟?shù)組 mdn

8、some(function(element, index, array))測(cè)試數(shù)組中的某些元素是否通過(guò)由提供的函數(shù)實(shí)現(xiàn)的測(cè)試

1)原理:
some 為數(shù)組中的每一個(gè)元素執(zhí)行一次 callback 函數(shù),直到找到一個(gè)使得 callback 返回一個(gè)“真值”(即可轉(zhuǎn)換為布爾值 true 的值)。如果找到了這樣一個(gè)值,some 將會(huì)立即返回 true。否則,some 返回 false
2)函數(shù)參數(shù):

element:數(shù)組當(dāng)前項(xiàng)的值

index:數(shù)組當(dāng)前項(xiàng)的索引

array:數(shù)組對(duì)象本身

3)返回值:
true/false

4)舉個(gè)例子

var a = [1, 2, 3, 4, 5, 6]

console.log(a.some(function(e){
return e>5}))  //true

5)some不會(huì)改變?cè)瓟?shù)組

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

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

相關(guān)文章

  • JS學(xué)習(xí)第十天筆記 Array類型

    摘要:只有滿足才返回,否則返回。專門用于篩選出數(shù)組中符合函數(shù)判斷條件的元素組成的心數(shù)組。專門用于對(duì)原數(shù)組中每個(gè)元素執(zhí)行相同的函數(shù)對(duì)象規(guī)定的操作。并歸方法將數(shù)組從左向右迭代。 Array類型 數(shù)組的常見(jiàn)方法 檢測(cè)數(shù)組 如何確定當(dāng)前是一個(gè)數(shù)組,JS提供了以下幾種方式1.typeof無(wú)法檢測(cè)數(shù)組對(duì)象:typrof[]返回object2.instanceof:[]instanceof Array返回...

    Barrior 評(píng)論0 收藏0
  • 工作筆記1:將JS數(shù)組轉(zhuǎn)換成json

    摘要:背景這幾天調(diào)到后臺(tái)組,搞后臺(tái)開(kāi)發(fā),開(kāi)發(fā)中碰到頁(yè)面拼裝到后臺(tái)的如下所示多選的數(shù)據(jù)是數(shù)組的方式,手動(dòng)將數(shù)組轉(zhuǎn)換成串又嫌麻煩,后來(lái)發(fā)現(xiàn)這一神器,只需要一行代碼,就能把數(shù)組轉(zhuǎn)成。 本文僅作為個(gè)人學(xué)習(xí)總結(jié)記錄使用!能力有限,難免會(huì)有疏漏和錯(cuò)誤,還望指出。共同進(jìn)步。 背景 這幾天調(diào)到后臺(tái)組,搞web后臺(tái)開(kāi)發(fā),開(kāi)發(fā)中碰到頁(yè)面拼裝JSON到后臺(tái)的CASE 如下所示:showImg(http://se...

    ymyang 評(píng)論0 收藏0
  • JS筆記!Map 與其他數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換

    摘要:與其他數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換僅作為一個(gè)學(xué)習(xí)筆記供往后翻閱轉(zhuǎn)為數(shù)組轉(zhuǎn)為數(shù)組最方便的方法,就是使用擴(kuò)展運(yùn)算符。對(duì)象轉(zhuǎn)為轉(zhuǎn)為轉(zhuǎn)為要區(qū)分兩種情況。轉(zhuǎn)為轉(zhuǎn)為,正常情況下,所有鍵名都是字符串。這往往是數(shù)組轉(zhuǎn)為的逆操作。 Map 與其他數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換 PS:僅作為一個(gè)學(xué)習(xí)筆記供往后翻閱! (1)Map 轉(zhuǎn)為數(shù)組Map 轉(zhuǎn)為數(shù)組最方便的方法,就是使用擴(kuò)展運(yùn)算符(...)。 const myMap = ...

    Jenny_Tong 評(píng)論0 收藏0
  • JS迭代器模式《JavaScript設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐》閱讀筆記

    摘要:但實(shí)際中,內(nèi)部迭代器和外部迭代器兩者并無(wú)優(yōu)劣。迭代器并不只迭代數(shù)組迭代器模式不僅能迭代數(shù)組,還可以迭代一些類數(shù)組對(duì)象。晚安了,參考設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐曾探本文作者本文鏈接迭代器模式設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐閱讀筆記 迭代器模式:一個(gè)相對(duì)簡(jiǎn)單的模式,目前絕大多數(shù)語(yǔ)言都內(nèi)置了迭代器,以至于大家都不覺(jué)得這是一種設(shè)計(jì)模式 迭代器模式 迭代器模式指提供一種方法訪問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而又不需要暴露該...

    djfml 評(píng)論0 收藏0
  • JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一

    摘要:取正值時(shí),陰影擴(kuò)大取負(fù)值時(shí),陰影收縮。默認(rèn)為,此時(shí)陰影與元素同樣大。如果沒(méi)有指定,則由瀏覽器決定通常是的值,不過(guò)目前取透明。 純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一 這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒(méi)有經(jīng)過(guò)精心排版,也沒(méi)有按邏輯編寫 GitHub項(xiàng)目源碼 預(yù)覽地址 最終效果 showImg(https://sfault-image.b0.upaiyun.com/...

    source 評(píng)論0 收藏0
  • JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一

    摘要:取正值時(shí),陰影擴(kuò)大取負(fù)值時(shí),陰影收縮。默認(rèn)為,此時(shí)陰影與元素同樣大。如果沒(méi)有指定,則由瀏覽器決定通常是的值,不過(guò)目前取透明。 純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一 這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒(méi)有經(jīng)過(guò)精心排版,也沒(méi)有按邏輯編寫 GitHub項(xiàng)目源碼 預(yù)覽地址 最終效果 showImg(https://sfault-image.b0.upaiyun.com/...

    lscho 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<