您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“JavaScript如何求數組長度和元素之和”,內容詳細,步驟清晰,細節處理妥當,希望這篇“JavaScript如何求數組長度和元素之和”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
JavaScript中,可利用length屬性來獲取數組長度,語法“數組對象.length”;可使用reduce()或reduceRight()函數來求元素之和,語法“arr.reduce(function f(pre,curr){return pre+cur})”或“arr.reduceRight(function f(pre,curr){return pre+cur})”。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
JavaScript求數組長度
在javascript中,可以利用數組對象的length屬性來獲取數組長度。
每個數組都有一個 length 屬性,該屬性返回數組的最大長度,即其值等于最大下標值加 1。由于數字下標必須小于 2^32-1,所以 length 屬性最大值等于 2^32-1。
示例1
下面代碼定義了一個空數組,然后為下標等于 100 的元素賦值,則 length 屬性返回 101。因此,length 屬性不能體現數組元素的實際個數。
var a = []; //聲明空數組 a[100] = 2; console.log(a.length); //返回101
輸出:
101
length 屬性可讀可寫,是一個動態屬性。length 屬性值也會隨數組元素的變化而自動更新。同時,如果重置 length 屬性值,也將影響數組的元素,具體說明如下:
如果 length 屬性被設置了一個比當前 length 值小的值,則數組會被截斷,新長度之外的元素值都會丟失。
如果 length 屬性被設置了一個比當前 length 值大的值,那么空數組就會被添加到數組末尾,使得數組增長到新指定的長度,讀取值都為 undefined。
示例2
下面代碼演示了 length 屬性值動態變化對數組的影響。
var a = [1,2,3]; //聲明數組直接量 a.length = 5; //增長數組長度 console.log(a[4]); //返回undefined,說明該元素還沒有被賦值 a.length = 2; //縮短數組長度 console.log(a[2]); //返回undefined,說明該元素的值已經丟失
輸出:
undefined undefined
JavaScript求數組之和
方法1:使用reduce()
reduce() 將數組元素計算為一個值(從左到右)。
var a = [1, 2, 3, 4, 5]; var b =a.reduce(function f(pre, curr){ return pre + curr; }); console.log(b);
說明:
reduce() 方法可對數組中的所有元素調用指定的回調函數。該回調函數的返回值為累積結果,并且此返回值在下一次調用該回調函數時作為參數提供。具體用法如下:
array.reduce(callbackfn[, initialVaule]);
參數說明:
array:必需參數,一個數組對象。
callbackfn:必需參數,一個接受最多四個參數的函數。對于數組中的每個元素,recude() 方法都會調用 callbackfn 函數一次。
initialVaule:可選參數,如果指定 initialVaule,則它將用作初始值來啟動累積。第一次調用 callbackfn 函數會將此值作為參數而非數組值提供。
reduce() 方法的返回值是通過最后一次調用回調函數獲得的累積結果。
如果提供了參數 initialVaule,則 reduce() 方法會對數組中的每個元素調用一次 callbackfn 函數(按升序索引順序);如果為提供 initialVaule,則 reduce() 方法會對從第 2 個元素開始的每個元素調用 callbackfn 函數。
回調函數的返回值在下一次調用回調函數時作為 previousValue 參數提供。最后一次調用回調函數獲得的返回值為 recude() 方法的返回值。該方法不為數組中缺少的元素調用該回調函數。
回調函數的語法如下:
function callbackfn(previousValue, currentVaule, currentIndex, array);
回調函數參數說明:
previousValue:通過上一次調用回調函數獲得的值。如果向 reduce() 方法提供 initialValue,則在首次調用函數時,previousValue 為 initialValue。
currentVaule:當前元素數組的值。
currentIndex:當前數組元素的數字索引。
array:包含該元素的數組對象。
在第一次調用回調函數時,作為參數提供的值取決于 reduce() 方法是否具有 initialValue 參數。如果向 recude() 方法提供 initialValue,則 previousValue 參數為 initialValue,currentValue 參數是數組中第 1 個元素的值。
方法2:使用reduceRight()
reduceRight() 將數組元素計算為一個值(從右到左)。
var arr = [1, 2, 3, 4, 5, 5]; var b =arr.reduceRight(function f(pre, curr){ return pre + curr; }); console.log(b);
說明:
reduceRight() 方法可從右向左對數組中的所有元素調用指定的回調函數。該回調函數的返回值為累積結果,并且此返回值在下一次調用該回調函數時作為參數提供。具體用法如下:
array.reduceRight(callbackfn[, initialValue]);
該方法的語法和用法與 reduce() 方法大概相同,唯一不同的是,它是從數組右側開始調用回調函數。如果提供了 initialValue,則 reduceRight() 方法會按降序索引順序對數組中的每個元素調用一次 callbackfn 函數。如果未提供 initialValue,則 reduceRight() 方法會按降序索引順序對每個元素(從倒數第 2 個元素開始)調用 callbackfn 函數。
讀到這里,這篇“JavaScript如何求數組長度和元素之和”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。