数组中相同的值相加

    var arr = [1,2,3,1,2,33,11,2,3,1,34,2,11];
    var obj = {};
    var result = [];
    for(var i=0;i<arr.length;i++){
      if (obj[arr[i]]!=undefined) {
          obj[arr[i]]=obj[arr[i]]+arr[i];
      }else{
        obj[arr[i]]=arr[i];
      }

    }

问卷统计里面本单位与其他单位的统计参与人数与比率

for(var i=0;i<arr2.length;i++){
      if (obj2[arr2[i].split('/')[0]]!=undefined) {
          obj2[arr2[i].split('/')[0]]=obj2[arr2[i].split('/')[0]]+parseInt(arr2[i].split('/')[1]);
      }else{
        obj2[arr2[i].split('/')[0]]=parseInt(arr2[i].split('/')[1]);
      }

    }

 若不想相同的值相加,而是把数组去重

var arr = [1,2,3,1,2,33,11,2,3,1,34,2,11];
var obj = {};
var result = [];
for (var i = 0; i < arr.length; i++) {
   obj[arr[i]]=arr[i];
}

 

转载于:https://www.cnblogs.com/SunShineM/p/6618980.html

JavaScript 中,将数组中的数相加可以通过多种方式实现。以下是一些常见且实用的方法: ### 使用 `reduce()` 方法 `reduce()` 是一种高效且简洁的方式,用于对数组中的元素进行累加操作。该方法接受一个回调函数,并可以传入初始。回调函数通常有两个参数:累加器(accumulator)和当前元素(current element)。 示例代码如下: ```javascript const numbers = [1, 2, 3, 4, 5]; const sum = numbers.reduce((accumulator, current) => accumulator + current, 0); console.log(sum); // 输出: 15 ``` 这种方式非常适合处理简单的求和需求[^4]。 ### 使用 `eval()` 函数 虽然不推荐使用 `eval()`,但也可以通过它快速实现数组求和。需要先将数组转换为字符串形式的表达式,然后交由 `eval()` 执行。 示例代码如下: ```javascript const numbers = [1, 2, 3, 4, 5]; const sum = eval(numbers.join('+')); console.log(sum); // 输出: 15 ``` 需要注意的是,`eval()` 的执行效率较低且存在潜在安全风险,因此建议优先选择其他方法[^4]。 ### 使用传统 `for` 循环 如果更倾向于传统的编程风格,可以使用 `for` 循环手动遍历数组并逐个累加数。 示例代码如下: ```javascript const numbers = [1, 2, 3, 4, 5]; let sum = 0; for (let i = 0; i < numbers.length; i++) { sum += numbers[i]; } console.log(sum); // 输出: 15 ``` ### 使用 `forEach()` 方法 `forEach()` 提供了一种更清晰的迭代方式,适用于对数组每个元素执行特定操作。 示例代码如下: ```javascript const numbers = [1, 2, 3, 4, 5]; let sum = 0; numbers.forEach(number => { sum += number; }); console.log(sum); // 输出: 15 ``` ### 总结 以上方法均可以满足数组相加的需求。其中,`reduce()` 是最为推荐的方式,因为它不仅代码简洁,而且逻辑清晰、可读性强。相比之下,`eval()` 虽然简单,但需谨慎使用。对于初学者而言,`for` 循环和 `forEach()` 更容易理解和上手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值