站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        JavaScript怎么求數(shù)組長(zhǎng)度和元素之和

        JavaScript中,可利用length屬性來獲取數(shù)組長(zhǎng)度,語(yǔ)法“數(shù)組對(duì)象.length”;可使用reduce()或reduceRight()函數(shù)來求元素之和,語(yǔ)法“arr.reduce(function f(pre,curr){return pre+cur})”或“arr.reduceRight(function f(pre,curr){return pre+cur})”。

        JavaScript怎么求數(shù)組長(zhǎng)度和元素之和

        前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)

        本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

        JavaScript求數(shù)組長(zhǎng)度

        在javascript中,可以利用數(shù)組對(duì)象的length屬性來獲取數(shù)組長(zhǎng)度。

        每個(gè)數(shù)組都有一個(gè) length 屬性,該屬性返回?cái)?shù)組的最大長(zhǎng)度,即其值等于最大下標(biāo)值加 1。由于數(shù)字下標(biāo)必須小于 2^32-1,所以 length 屬性最大值等于 2^32-1。

        示例1

        下面代碼定義了一個(gè)空數(shù)組,然后為下標(biāo)等于 100 的元素賦值,則 length 屬性返回 101。因此,length 屬性不能體現(xiàn)數(shù)組元素的實(shí)際個(gè)數(shù)。

        var a = [];  //聲明空數(shù)組 a[100] = 2; console.log(a.length);  //返回101

        輸出:

        101

        length 屬性可讀可寫,是一個(gè)動(dòng)態(tài)屬性。length 屬性值也會(huì)隨數(shù)組元素的變化而自動(dòng)更新。同時(shí),如果重置 length 屬性值,也將影響數(shù)組的元素,具體說明如下:

        如果 length 屬性被設(shè)置了一個(gè)比當(dāng)前 length 值小的值,則數(shù)組會(huì)被截?cái)啵麻L(zhǎng)度之外的元素值都會(huì)丟失。

        如果 length 屬性被設(shè)置了一個(gè)比當(dāng)前 length 值大的值,那么空數(shù)組就會(huì)被添加到數(shù)組末尾,使得數(shù)組增長(zhǎng)到新指定的長(zhǎng)度,讀取值都為 undefined。

        示例2

        下面代碼演示了 length 屬性值動(dòng)態(tài)變化對(duì)數(shù)組的影響。

        var a = [1,2,3];  //聲明數(shù)組直接量 a.length = 5;  //增長(zhǎng)數(shù)組長(zhǎng)度 console.log(a[4]);  //返回undefined,說明該元素還沒有被賦值 a.length = 2;  //縮短數(shù)組長(zhǎng)度 console.log(a[2]);  //返回undefined,說明該元素的值已經(jīng)丟失

        輸出:

        undefined undefined

        JavaScript求數(shù)組之和

        方法1:使用reduce()

        reduce() 將數(shù)組元素計(jì)算為一個(gè)值(從左到右)。

        var a = [1, 2, 3, 4, 5]; var b =a.reduce(function f(pre, curr){ 	return pre + curr; 	}); console.log(b);

        JavaScript怎么求數(shù)組長(zhǎng)度和元素之和

        說明:

        reduce() 方法可對(duì)數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)。該回調(diào)函數(shù)的返回值為累積結(jié)果,并且此返回值在下一次調(diào)用該回調(diào)函數(shù)時(shí)作為參數(shù)提供。具體用法如下:

        array.reduce(callbackfn[, initialVaule]);

        參數(shù)說明:

        • array:必需參數(shù),一個(gè)數(shù)組對(duì)象。

        • callbackfn:必需參數(shù),一個(gè)接受最多四個(gè)參數(shù)的函數(shù)。對(duì)于數(shù)組中的每個(gè)元素,recude() 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次。

        • initialVaule:可選參數(shù),如果指定 initialVaule,則它將用作初始值來啟動(dòng)累積。第一次調(diào)用 callbackfn 函數(shù)會(huì)將此值作為參數(shù)而非數(shù)組值提供。

        reduce() 方法的返回值是通過最后一次調(diào)用回調(diào)函數(shù)獲得的累積結(jié)果。

        如果提供了參數(shù) initialVaule,則 reduce() 方法會(huì)對(duì)數(shù)組中的每個(gè)元素調(diào)用一次 callbackfn 函數(shù)(按升序索引順序);如果為提供 initialVaule,則 reduce() 方法會(huì)對(duì)從第 2 個(gè)元素開始的每個(gè)元素調(diào)用 callbackfn 函數(shù)。

        回調(diào)函數(shù)的返回值在下一次調(diào)用回調(diào)函數(shù)時(shí)作為 previousValue 參數(shù)提供。最后一次調(diào)用回調(diào)函數(shù)獲得的返回值為 recude() 方法的返回值。該方法不為數(shù)組中缺少的元素調(diào)用該回調(diào)函數(shù)。

        回調(diào)函數(shù)的語(yǔ)法如下:

        function callbackfn(previousValue, currentVaule, currentIndex, array);

        回調(diào)函數(shù)參數(shù)說明:

        • previousValue:通過上一次調(diào)用回調(diào)函數(shù)獲得的值。如果向 reduce() 方法提供 initialValue,則在首次調(diào)用函數(shù)時(shí),previousValue 為 initialValue。

        • currentVaule:當(dāng)前元素?cái)?shù)組的值。

        • currentIndex:當(dāng)前數(shù)組元素的數(shù)字索引。

        • array:包含該元素的數(shù)組對(duì)象。

        在第一次調(diào)用回調(diào)函數(shù)時(shí),作為參數(shù)提供的值取決于 reduce() 方法是否具有 initialValue 參數(shù)。如果向 recude() 方法提供 initialValue,則 previousValue 參數(shù)為 initialValue,currentValue 參數(shù)是數(shù)組中第 1 個(gè)元素的值。

        方法2:使用reduceRight()

        reduceRight() 將數(shù)組元素計(jì)算為一個(gè)值(從右到左)。

        var arr = [1, 2, 3, 4, 5, 5]; var b =arr.reduceRight(function f(pre, curr){ 	return pre + curr; 	}); console.log(b);

        JavaScript怎么求數(shù)組長(zhǎng)度和元素之和

        說明:

        reduceRight() 方法可從右向左對(duì)數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)。該回調(diào)函數(shù)的返回值為累積結(jié)果,并且此返回值在下一次調(diào)用該回調(diào)函數(shù)時(shí)作為參數(shù)提供。具體用法如下:

        array.reduceRight(callbackfn[, initialValue]);

        該方法的語(yǔ)法和用法與 reduce() 方法大概相同,唯一不同的是,它是從數(shù)組右側(cè)開始調(diào)用回調(diào)函數(shù)。如果提供了 initialValue,則 reduceRight() 方法會(huì)按降序索引順序?qū)?shù)組中的每個(gè)元素調(diào)用一次 callbackfn 函數(shù)。如果未提供 initialValue,則 reduceRight() 方法會(huì)按降序索引順序?qū)γ總€(gè)元素(從倒數(shù)第 2 個(gè)元素開始)調(diào)用 callbackfn 函數(shù)。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 日韩精品在线视频| 国产精品亚洲综合一区| 久久免费精品视频| 亚洲日韩精品无码专区网址| 国语自产拍精品香蕉在线播放| 人妻少妇精品系列| 91精品国产91久久久久久| 精品人妻中文字幕有码在线| 少妇亚洲免费精品| 国产三级国产精品国产普男人 | 久久夜色精品国产噜噜麻豆| 久久99热这里只有精品国产| 亚洲成人精品久久| 国产精品久久国产精品99盘| 精品免费久久久久久久| 亚洲精品二区国产综合野狼| 午夜三级国产精品理论三级 | 老司机亚洲精品影院| 亚洲欧美国产精品专区久久| 久久五月精品中文字幕 | 国产成人精品高清在线观看93| 综合在线视频精品专区| 久久免费国产精品| 老子影院午夜精品无码| 黑人巨茎精品欧美一区二区| 国产乱人伦偷精品视频| 国产精品激情综合久久| 99久久精品免费| 国产成人精品久久亚洲高清不卡 | 中文字幕亚洲综合精品一区| 先锋影音国产精品| 国产叼嘿久久精品久久| 国产精品成人国产乱一区| 91精品福利在线观看| 国产精品高清在线观看| 国产精品网址在线观看你懂的 | 999在线视频精品免费播放观看| 久久精品国产亚洲AV香蕉| 国产美女精品一区二区三区| 国产三级精品三级在线专区1| 国产成人精品日本亚洲专一区|