微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据Javascript中另一个元素值的元素值的总数添加/删除元素

如何解决如何根据Javascript中另一个元素值的元素值的总数添加/删除元素

我正在尝试根据另一个值的总数从数组中添加/删除元素。

let data = [
    {
  "details": [
    {
      "Name": "DataSet1","Severity": "4","Cost": 20
    },{
      "Name": "DataSet2","Cost": 30
    },{
      "Name": "DataSet3","Cost": 25
    }
  ],"charge": 45
}
];

在这里,我试图获得一个数组,使得 Cost 的总价值接近于收费。在这里,成本总和是 75,它大于 45,所以我尝试如下:

  1. 计算费用和总费用的差值,如果它大于费用,则从数组中删除元素,这样新数组的总费用总是小于或接近费用。所以,我的新数组应该是:
let newdata = [
    {
  "details": [
    {
      "Name": "DataSet1","charge": 50
}
];

有没有更好的方法来做到这一点? Javascript 是否具有执行此操作的任何内置功能

解决方法

const data = {
  "charge": 50,"details": [{
      "Name": "DataSet1","Severity": "4","Cost": 20
    },{
      "Name": "DataSet2","Cost": 30
    },{
      "Name": "DataSet3","Cost": 25
    }
  ],};
const getItemsAndDontGoAboveCharge =
  (charge,list,start = 0,currentCost = 0,result = []) => {
    if (start === list.length) return result
    const {
      Cost
    } = list[start]
    const nextTotal = currentCost + Cost
    if (nextTotal > charge) return result
    return getItemsAndDontGoAboveCharge(charge,start + 1,nextTotal,[...result,list[start]]);
  }

console.log(getItemsAndDontGoAboveCharge(data.charge,data.details))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。