第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用JavaScript查找并添加多個對象分數(shù)以最接近給定值

使用JavaScript查找并添加多個對象分數(shù)以最接近給定值

繁星點點滴滴 2022-10-27 14:43:47
我有一個對象數(shù)組:[   {     score: 1,   },   {     score: 2,   },   {     score: 4,   },   ]我有一個給定的值,一個數(shù)字。例如:值為6我的目標(biāo)是獲取對象,使它們的分數(shù)(自己添加)最接近值(這里:6)我的第一步是檢查對象分數(shù)是否等于該值。如果不是這樣,我不知道如何實現(xiàn)這一點。使用上面的數(shù)組,對于6 ,我需要選擇第二個和第三個,因為它是添加分數(shù)等于6 (4 + 2)的唯一組合但是,假設(shè)第三個對象的分數(shù)是 3,我需要選擇 3 個對象才能獲得6。有時我無法獲得價值,所以我只需要成為最接近的人。我不想讓你創(chuàng)建一個算法,但我需要知道我應(yīng)該遵循什么路徑才能有效地實現(xiàn)這一點,因為我完全不知道如何實現(xiàn)這一點。
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻1966條經(jīng)驗 獲得超4個贊

使用遞歸。

基本上從檢查第一個分數(shù)的函數(shù)調(diào)用開始。如果它大于或等于最終分數(shù),則返回該值。如果它小于分數(shù),則再次調(diào)用該函數(shù),并將新分數(shù)作為參數(shù)傳遞。如果下一個分數(shù)加上前一個分數(shù)大于或等于該分數(shù),則返回該值。如果不是,則繼續(xù)進行,直到分數(shù)大于或等于該值。

現(xiàn)在,您還必須檢查哪個最終得分最接近,不一定哪個更大(例如,您可以得到 10 作為較大的值,而較小的值是 5,這更接近,所以在這種情況下,您需要選擇 5)。

所以要解決這個問題,你需要做同樣的事情,再次,相反。從對第一個分數(shù)值的函數(shù)調(diào)用(不同的函數(shù))開始。如果等于或小于最終分值,則返回。如果它大于最終分數(shù),則繼續(xù),并再次調(diào)用相同的函數(shù),將之前的分數(shù)作為參數(shù)。如果新分數(shù)加上剛剛檢查的上一個分數(shù)小于或等于最終值,則返回它。如果它更大,則繼續(xù)前進,直到到達終點。如果您已經(jīng)到達終點并且所有添加的值仍然更大,那么只需返回最后一個值。

現(xiàn)在您總共有 2 個返回值,來自這兩個不同的函數(shù)。現(xiàn)在您只需將每個值與最終得分(即絕對值)之間的距離進行比較。假設(shè)你的分數(shù)是6,一個結(jié)果是8,另一個是4。因此,取一個變量列表distHigher并將其設(shè)置為8 - 6,然后創(chuàng)建另一個變量 ,distLower并將其設(shè)置為6 - 4,然后確定哪個數(shù)字更小,這就是您的答案。


查看完整回答
反對 回復(fù) 2022-10-27
  • 1 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號