• javascript二维数组(18)多个数组按照对应为准相加求和生成新的数组2


    在数组var a=[
    {name:“1”,pre1_day_off:1,pre2_day_off:1,pre3_day_off:1},
    {name:“2”,pre1_day_off:2,pre2_day_off:2,pre3_day_off:1},
    {name:“3”,pre1_day_off:3,pre2_day_off:3,pre3_day_off:1}
    ]中,如何将三个对象中的多个如pre1_day_off1相加,pre2_day_off2相加,pre3_day_off3相加,生成新的数组[sum1,sum2,sum2…sumn]

    使用类似的逻辑来对数组中的对象进行求和。以下是一个示例代码

    var a = [
        {name:"1", pre1_day_off:1, pre2_day_off:1, pre3_day_off:1},
        {name:"2", pre1_day_off:2, pre2_day_off:2, pre3_day_off:1},
        {name:"3", pre1_day_off:3, pre2_day_off:3, pre3_day_off:1}
    ];
    
    var sums = [];
    
    for (var key in a[0]) {
        if (a[0].hasOwnProperty(key) && key.startsWith('pre')) {
            sums.push(a.reduce((acc, curr) => acc + curr[key], 0));
        }
    }
    
    console.log(sums);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这个代码示例中,我们使用for...in循环遍历数组a中第一个对象的每个属性。我们使用startsWith()方法检查属性名称是否以’pre’开头,以确保只计算这些属性。然后,我们使用reduce()方法对数组a中的每个对象进行求和操作,并将结果添加到sums数组中。最后,使用console.log(sums)打印输出包含所有总和的数组。

    这段代码将计算pre1_day_offpre2_day_offpre3_day_off的总和,并将它们放入一个名为sums的数组中。如果你要计算其他属性,只需在循环中添加相应的条件即可。

    hasOwnProperty属性

    hasOwnProperty 是一个 JavaScript 方法,用于检查一个对象是否具有给定的属性名称。这个方法只能检查对象本身的属性,而无法检查对象原型链中的属性。

    例如,如果我们有一个对象 obj,我们可以使用 obj.hasOwnProperty('propName') 来检查 obj 是否有一个名为 ‘propName’ 的属性。如果这个属性存在,那么该方法将返回 true;否则,它将返回 false

    需要注意的是,hasOwnProperty 无法检查对象原型链中是否具有给定的属性。也就是说,如果一个对象的原型链中有一个属性,但是这个对象本身没有这个属性,那么 hasOwnProperty 方法是无法检测到这个属性的存在的。

    以下是一些示例代码:

    let obj = {
      name: 'John',
      age: 30
    };
    
    console.log(obj.hasOwnProperty('name'));  // 输出: true
    console.log(obj.hasOwnProperty('height'));  // 输出: false
    console.log(obj.hasOwnProperty('prototype'));  // 输出: false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这个例子中,obj 对象有 ‘name’ 和 ‘age’ 两个属性,所以 obj.hasOwnProperty('name')obj.hasOwnProperty('age') 都返回 true。但是,obj 对象没有 ‘height’ 属性,所以 obj.hasOwnProperty('height') 返回 false。另外,‘prototype’ 不是 obj 对象的一个属性,所以 obj.hasOwnProperty('prototype') 也返回 false

    startsWith属性

    startsWith是字符串的一个方法,用于检查一个字符串是否以特定的前缀开始。

    在Python中,startsWith的使用方式如下:

    str.startsWith(prefix[, start[, end]])
    
    • 1

    在JavaScript中,startsWith的使用方式如下:

    str.startsWith(prefix[, start[, end]])
    
    • 1

    在这些语法中,prefix是要检查的字符串或字符串元组,start(可选)是要在字符串中检查前缀的开始位置,end(可选)是要在字符串中检查前缀的结束位置。

    这两个方法都返回一个布尔值。如果字符串以指定的前缀开头,则返回True;如果字符串不是以指定的前缀开头,则返回False。注意,在JavaScript中,如果字符串以元组的任何项目开头,startsWith也会返回True。


    @漏刻有时

  • 相关阅读:
    【PyCharm Community Edition】:基础
    大语言模型LLM分布式框架:PyTorch Lightning框架(LLM系列14)
    指针和字符数组笔试题及其解析(第二组)
    【Dubbo3高级特性】「框架与服务」Dubbo3客户端和服务端的泛化调用机制体系
    C/C++ Capstone 引擎源码编译
    VScdoe将字体修改为宋体
    在线问题反馈模块实战(二十):实现文件批量导出到zip压缩包中功能
    银行利率bp是什么意思,基准利率bp是什么意思
    序列式容器——vector
    会话跟踪cookie、session、token
  • 原文地址:https://blog.csdn.net/weixin_41290949/article/details/133747054