当前位置: 首页 > 面试题库 >

对对象数组中具有相同对象propertyB的javascript对象propertyA值求和

孟开宇
2023-03-14
问题内容

一个人如何处理一个javascript对象数组,例如:

my objArr = [
{key:Mon Sep 23 2013 00:00:00 GMT-0400, val:42},
{key:Mon Sep 24 2013 00:00:00 GMT-0400, val:78},
{key:Mon Sep 25 2013 00:00:00 GMT-0400, val:23},
{key:Mon Sep 23 2013 00:00:00 GMT-0400, val:54}]

并通过将值相加来合并重复的键。为了得到这样的东西:

my reducedObjArr = [
{key:Mon Sep 23 2013 00:00:00 GMT-0400, val:96},
{key:Mon Sep 24 2013 00:00:00 GMT-0400, val:78},
{key:Mon Sep 25 2013 00:00:00 GMT-0400, val:23}]

我尝试迭代并添加到新数组,但这没有用:

var reducedObjArr = [];
var item = null, key = null;
for(var i=0; i<objArr.length; i++) {
   item=objArr[i];
   key = Object.keys(item)[0];
   item=item[key];

   if(!result[key]){
       result[key] = item;
   }else{
       result[key] += item;}
   }a

问题答案:

您应该使用属性将未找到的每个对象分配给结果.key

如果找到它,则需要添加.val

var temp = {};
var obj = null;
for(var i=0; i < objArr.length; i++) {
   obj=objArr[i];

   if(!temp[obj.key]) {
       temp[obj.key] = obj;
   } else {
       temp[obj.key].val += obj.val;
   }
}
var result = [];
for (var prop in temp)
    result.push(temp[prop]);

另外,部分问题是您正在重用item变量来引用的值.key,因此您失去了对该对象的引用。



 类似资料:
  • 问题内容: 一个人如何处理一个javascript对象数组,例如: 并通过将值相加来合并重复的键。为了得到这样的东西: 我尝试迭代并添加到新数组,但这没有用: 问题答案: 您应该使用属性将未找到的每个对象分配给结果。 如果找到它,则需要添加它。 另外,部分问题是您正在重用变量来引用的值,因此您失去了对该对象的引用。

  • 如何处理对象的javascript数组,例如: 并通过求和这些值合并重复的键。为了得到这样的东西: 我尝试过迭代并添加到一个新数组中,但这没有起到作用:

  • 我有一个对象数组,希望删除所有具有特定键值的对象。 该数组如下所示:

  • 本文向大家介绍JavaScript中的Array 对象(数组对象),包括了JavaScript中的Array 对象(数组对象)的使用技巧和注意事项,需要的朋友参考一下  1、创建Array对象方法: --->var arr = [1,2,3];//简单的定义方法 此时可以知道 此时可以知道: 2、Array对象属性 Array常见的属性有三个:constructor、length和prototyp

  • 问题内容: 问题在于确定以下符号之间的权衡: 基于JSON : 基于数组 : 关于同一问题的这篇文章,我已经决定(在前端)使用JSON对象表示法而不是对象数组,因为它符合我的要求,更好的性能和更少的浏览器代码。 但是问题在于列表本身不是静态的。我的意思是,该列表正在生成,即从DB(NoSQL)获取/存储,并通过服务器上的JavaAPI为新条目创建。我无法决定在后端应使用哪种表示法(最终也会影响UI

  • 问题内容: 在一个我目前正在从事的项目中,我遇到了一个角度异常: 在寻找解决方案的搜索中,我直接在浏览器中输入了Web服务的URL,但令人惊讶的是,我没有收到预期的数组。 Web服务类: 当我输入网址时,我希望看到带有JSON对象的JSON数组: 但是,相反,我收到的JSON对象的属性与我期望的JSON对象相同,没有任何数组: 所以我想知道为什么没有数组,当我添加另一个Clazz对象时会发生什么。