【问题标题】:Adding values from arrays in JavaScript在 JavaScript 中从数组中添加值
【发布时间】:2016-03-10 07:55:01
【问题描述】:

我正在尝试将数组内对象的一些值添加在一起。这是我的例子:

[
  {
    _id: "EnD2WbxhRJztDyfCA",
    day: "Saturday",
    totalMinutes: 10
  },
  {
    _id: "82NSKTYLiswWPbF8J",
    day: "Saturday",
    totalMinutes: 25
  }
]

我需要进入这个数组,取出它们的 totalMinutes 值,然后将它们加在一起。我遇到的另一个问题是数组中的对象数量发生了变化。所以我不能为每个不同数量的对象做具体的案例。

【问题讨论】:

    标签: javascript arrays object meteor


    【解决方案1】:

    arr.reduce 存在性能问题,如果您有大量数据渲染,我发现此解决方案更好。

    function getTotalMinutes(arr) {
      var result = 0;
      for (var i in arr){
        result += arr[i]['totalMinutes'];
      }
      return result;
    }
    

    【讨论】:

      【解决方案2】:

      你需要先解析JSON:

      var arr = JSON.parse(myJson);
      

      然后您可以将数组缩减为单个值:

      var value = arr.reduce(function (prev, curr) {
          return prev + curr.totalMinutes;
      }, 0);
      

      【讨论】:

        【解决方案3】:

        您已将数组转换为 JSON 格式。所以首先你需要转换它。你可以这样做:-

        var ele = jQuery.parseJSON( yourjson );
        

        然后您可以使用ele.time 访问每个元素。您也可以在jQuery.each() 中执行此操作

        希望这会对你有所帮助。

        【讨论】:

          【解决方案4】:

          这是一个函数。你传入数组,它会返回总分钟数:

          function getTotalMinutes(items) {
             var totalMinutes = 0;
             for (var i=0; i<items.length; i++) {
                var item = items[i];
                totalMinutes += item.totalMinutes;
              }
          
              return totalMinutes;
          }
          

          【讨论】:

            【解决方案5】:

            这可能会对你有所帮助。

            var arr = [
              {
                _id: "EnD2WbxhRJztDyfCA",
                day: "Saturday",
                totalMinutes: 10
              },
              {
                _id: "82NSKTYLiswWPbF8J",
                day: "Saturday",
                totalMinutes: 25
              }
            ];
            var result = 0;
            
            for (var x = 0; x < arr.length; x++ ){
              result += arr[x].totalMinutes 
            }
            
            console.log(result)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-10-25
              • 1970-01-01
              • 1970-01-01
              • 2012-05-16
              • 2021-08-28
              相关资源
              最近更新 更多