色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 奇數(shù)和

李中冰1年前8瀏覽0評論

在javascript中,奇數(shù)和是指某個數(shù)列中所有奇數(shù)的和。這個數(shù)列可以是任意長度,包含任意整數(shù)。計算奇數(shù)和是一個非常基本的算法問題,但是在實際的編程中,求解方式卻有很多種。下面我們就來介紹幾種不同的求解奇數(shù)和的方法。

第一種方法是使用循環(huán)語句來遍歷整個數(shù)列,判斷每個數(shù)是否為奇數(shù),如果是加入到一個計數(shù)器中。代碼如下:

function oddSum1(arr) {
let sum = 0;
for (let i = 0; i< arr.length; i++) {
if (arr[i] % 2 === 1) {
sum += arr[i];
}
}
return sum;
}

上面的代碼中,arr代表整個數(shù)列,sum代表奇數(shù)和的計數(shù)器。for循環(huán)遍歷整個數(shù)組,如果當前數(shù)是奇數(shù),就將它加入到sum變量中。最后返回sum即可。

第二種方法是使用數(shù)組的reduce()方法,將求奇數(shù)和的邏輯封裝成一個函數(shù),再通過reduce()函數(shù)的調(diào)用來計算奇數(shù)和。代碼如下:

function oddSum2(arr) {
return arr.reduce((acc, cur) =>{
if (cur % 2 === 1) {
return acc + cur;
} else {
return acc;
}
}, 0);
}

上面的代碼中,arr仍然代表整個數(shù)列。reduce()函數(shù)接受兩個參數(shù),第一個參數(shù)是回調(diào)函數(shù),第二個參數(shù)是初始值0。回調(diào)函數(shù)中判斷當前數(shù)是否為奇數(shù),如果是加入到計數(shù)器中,否則返回計數(shù)器。最后返回reduce()函數(shù)的返回值即可。

第三種方法是使用ES6的箭頭函數(shù)和數(shù)組的filter()方法來實現(xiàn),前兩種方法都是修改計數(shù)器的值,而這種方法則是修改數(shù)列自身,保留其中所有奇數(shù),再將奇數(shù)求和。代碼如下:

function oddSum3(arr) {
let oddArr = arr.filter(item =>item % 2 === 1);
return oddArr.reduce((acc, cur) =>acc + cur, 0);
}

上面的代碼中,filter()方法接受一個回調(diào)函數(shù),用于對每個數(shù)進行判斷,返回值為true時保留該數(shù),反之則刪除。最終得到一個新的數(shù)組,只包含原來數(shù)列中的奇數(shù)。接下來使用reduce()函數(shù)來對奇數(shù)數(shù)組進行求和即可。

以上三種方法都可以用于求解奇數(shù)和,其中方法二和方法三更加優(yōu)雅,使用ES6特性簡化了代碼。但是需要注意的是,當數(shù)列長度較大時,第一種方法可能會更加高效,因為它不需要創(chuàng)建新的數(shù)組對象,節(jié)省了內(nèi)存空間。

在實際的編程中,還需要考慮對數(shù)列進行去重、排序等情況。不同的應(yīng)用場景會需要不同的求解奇數(shù)和的方法,開發(fā)者需要結(jié)合具體情況進行選擇。