• 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。


    @漏刻有时

  • 相关阅读:
    手写一个HashMap
    etcd选举源码分析和例子
    背靠TON公链的Notcoin游戏项目,能否杀出GameFi的红海?
    【Bash】常用命令总结
    Promise笔记(一)
    1068 Find More Coins
    最新IOU损失汇总
    Ionic header content footer toolbar UI实例
    自动挂载磁盘
    机器人编程初学者教程书:开启智能之旅的全方位指南
  • 原文地址:https://blog.csdn.net/weixin_41290949/article/details/133747054