首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何循环遍历一个数字数组,以查看哪些数字与另一个数字相关?

如何循环遍历一个数字数组,以查看哪些数字与另一个数字相关?
EN

Stack Overflow用户
提问于 2019-02-25 16:36:21
回答 3查看 283关注 0票数 2

我试着用香草JavaScript编写一个简单的举重程序。用户输入一定量的重量,并返回特定的重量板放在杠铃的每一边。

然后,我把这个数字变成一个函数,从它中减去45,计算杠铃的重量,然后除以这个数字2,这是施加在酒吧两边的重量的数量。

代码语言:javascript
运行
复制
const num = document.getElementById("weightAmount").value;

function getWeightAmount (num) {
const newNum = num - 45;
const halfNum = newNum / 2;
return getWeights(halfNum);
}

我有一个包含每个重量板的数组:

代码语言:javascript
运行
复制
let plates = [44, 33, 22, 11, 5.5, 2.75];

我在正确循环数组以得到我想要的东西时遇到了问题。如果我需要,比如说,每一边60.5磅,它应该返回44,11,5.5。因此,我需要找出plate数组中哪些数字适合于我的第一个函数返回的数字。

我有一个名为weights的空数组,它希望将数字从plates数组中推到该工作中,然后返回权重。

我的问题是如何循环遍历plates数组以确定需要哪些权重?

EN

Stack Overflow用户

回答已采纳

发布于 2019-02-25 17:05:25

下面我有一个简单的解决方案,如果目标重量的值总是可用板块的总和。假设权重数组按降序排序。我循环考虑了所有可用的权重,只有当总重量超过所需的总重量时,才会继续进行下一个重量。

代码语言:javascript
运行
复制
function getWeights(targeWeight) {

    let plates = [44, 33, 22, 11, 5.5, 2.75];

    let totalWeight = 0;

    let neededPlates = [];

    let i = 0;

    while(i < plates.length){

        var pweight = totalWeight + plates[i];

        if (pweight > targeWeight) {
            i++;
            continue;
        }

        totalWeight += plates[i];
        neededPlates.push(plates[i]);
    }

    return neededPlates;
}

console.log(getWeights(60.5)); // [44, 11, 5.5]
console.log(getWeights(104.5)); //[44, 44, 11, 5.5]
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54870802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档