簡體   English   中英

我嘗試編寫一個函數,該函數將返回等於數組中傳遞的數字的所有數組元素的總和。 我該怎么做?

[英]I try to write a function that will return the sum of all array elements that are equal to the number passed in the array. How can I do it?

此函數返回數組中所有元素的總和

const array = [4, 7, 24, 7, 0, 10];
const number = 7;

function addTheSameNumbers1(number, array) {
    let count = array.length;
    for (let i = 0; i < count; i++) {
        if (array[i] === number) {
           return array.reduce((a,b) => a + b, 0);
        }
    }
    return null;
}

console.log(addTheSameNumbers1(number, array));```

您的reduce()正在對所有值求和。 這是對單個數字求和的方法:

 const array = [4, 7, 24, 7, 0, 10]; const number = 7; function addTheSameNumbers1(number, array) { return array.reduce((accum, val) => val === number ? accum + val : accum , 0); } const result = addTheSameNumbers1(number, array); console.log(result);

你可以得到變量的出現次數和數字的倍數

 <script> const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0); const array = [4, 7, 24, 7, 0, 10]; const number = 7; var accur = countOccurrences(array, number); console.log(accur); console.log(accur * number); </script>

如果我理解正確的話,您希望獲得具有與其父數組長度相同的值的元素的總和。 這段代碼應該可以。

const filterAndSum = (numbers, query) => {
  return numbers
    .filter((n) => n === query)
    .reduce((n, total) => total + n, 0);
};

console.log(filterAndSum([1,2,3,4,5,4,3,2,1,2,3,2,1], 3))

首先,它過濾不等於父數組長度的元素,然后獲取剩余元素的總和。 請注意,此處未實施驗證,但我相信您可以輕松做到這一點。

reduce的替代方法是使用簡單的for/of循環來迭代數字,然后將任何找到的數字添加到sum變量中。

 const array = [4, 7, 24, 7, 0, 10]; const number = 7; function sumTheSameNumber(n, arr) { let sum = 0; for (let i of arr) { if (i === n) sum += i; } return sum; } console.log(sumTheSameNumber(number, array));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM