簡體   English   中英

我需要在 javascript 中創建一個函數來顯示有多少個數組成員小於給定的數字

[英]I need to create a function in javascript to show how many members of array are less than a given number

我認為我的錯誤在return部分

我嘗試了很多東西,但我找不到解決方案

問題是:“編寫一個名為 countNums 的函數,它獲取兩個參數 - 一個數字數組和一些成員並將數組中的一些器官打印到屏幕上,這些器官小於給定器官。對於屏幕, countNums([7,3,9,1,20], 10)將打印為:例如“4 個元素小於 10”。

function countNums(arr, element) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] < element) {
            return " " + arr[i] + "elements are less than" + element + " ";
        }
    }

}
arr = [14, 25, 36, 50]

document.write(countNums(arr, 20));

Javascript 具有可以幫助您輕松完成此操作的函數,例如array.filter ,它將根據條件返回數組的子集。

但是,我已經提出了一個答案,該答案使用您在自己的嘗試中概述的邏輯,但為了返回正確的結果而進行了修改。

您的代碼的主要問題是您實際上並沒有計算目標數字以下的元素數量 - 而是在第一個數組元素低於目標數字時返回。

我通過添加一個count變量來保持運行計數來解決這個問題。

if語句中,如果數組元素小於數字,則count加 1。 在函數結束時,返回總運行計數。

這是一個工作片段,顯示了這一點:

 function countNums(arr, element) { let count = 0; for (var i = 0; i < arr.length; i++) { if (arr[i] < element) count++; } return count; } let arr = [14,25,36,50] let num = 20; let result = countNums(arr, num); document.write(result + " element(s) are less than " + num);

在上面的代碼片段中,您可以修改num以指定數組元素必須小於的目標數字。 輸出語句將自動修改以顯示正確的措辭。

使用 Array 內置方法“reduce”是一種典型情況:

const array = [12, 6, 11, 4]

const count = (arr, num) => {
  return `${arr.reduce(
    (acc, val) => val < num
      ? acc + 1
      : acc, 0
  )} number(s) are less than ${num}`
}

console.log(count(array, 10))

暫無
暫無

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

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