函数-根所数组相同的name,然后计算其对应值

问题描述

根所数组相同的name,然后计算其对应值

下面这段代码是把如name=a的统计其数量,得出a:3,b:2,c:1,请问大神如果根据下面的代码实现a:3 price:33(些数字为同名name的price想加,10+11+12),
function aa(){
var list = [ {"name":"a", "price": "10"}, {"name":"a", "price": "11"}, {"name":"a", "price": "12"}, {"name":"b", "price": "20"},{"name":"b", "price": "21"},{"name":"c", "price": "30"}];
var list2 = [];
var listMap = {};
for (var i = 0, len = list.length, name, price, key; i < len; i++) {
name = list[i].name;
price = list[i].price;
key = id// + '-' + name; // key为id和name的组合,值为number
if (!!listMap[key]) {
listMap[key]++;
} else {
listMap[key] = 1;
}
}
for (var item in listMap) {
list2.push({
id: item[0],
// name: item.split('-')[1],
number: listMap[item]
})
}
}

解决方案

function test_result(){
var list = [ {"name":"a", "price": "10"}, {"name":"a", "price": "11"}, {"name":"a", "price": "12"}, {"name":"b", "price": "20"},{"name":"b", "price": "21"},{"name":"c", "price": "30"}];
var result={};
$.each(list,function(i,v){
if(result[v.name]){
result[v.name] =result[v.name]*1 + v.price*1;
}else{
result[v.name] = v.price*1;
}
})

    console.info(result);
}

解决方案二:



    function aa() {
        var list = [{ "name": "a", "price": "10" }, { "name": "a", "price": "11" }, { "name": "a", "price": "12" }, { "name": "b", "price": "20" }, { "name": "b", "price": "21" }, { "name": "c", "price": "30" }];
        var rst = {};
        for (var i = 0; i < list.length; i++) {
            rst[list[i].name] = rst[list[i].name] || { count:0, price: 0 };
            rst[list[i].name].count++;
            rst[list[i].name].price += parseFloat(list[i].price);
        }
        for(var attr in rst)alert(attr+'n数量:'+rst[attr].count+'n价格:'+rst[attr].price)
    }
    aa()
时间: 2024-10-30 13:56:10

函数-根所数组相同的name,然后计算其对应值的相关文章

用c++写了一个函数判断一个数组是否包含另一个数组 但是总是返回-1 请大神们帮忙看看错在哪里

问题描述 用c++写了一个函数判断一个数组是否包含另一个数组 但是总是返回-1 请大神们帮忙看看错在哪里 int substr_index( const char substr[], const char str[]) { int flag = -1; int sizeOfSubstr = sizeof(substr)/sizeof(char); int sizeOfStr = sizeof(str)/sizeof(char); for (int i = 0; i < sizeOfStr; i+

c++将数组名作为函数参数对数组元素进行相应的运算

  这篇文章主要介绍了c++将数组名作为函数参数对数组元素进行相应的运算,需要的朋友可以参考下 用数组名做函数参数与用数组元素作实参有几点不同: (1)用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的.因此,并不要求函数的形参也是下标变量.换句话说,对数组元素的处理是按普通变量对待的.用数组名作函数参数时,则要求形参和相应的实参都必须是类型相同的数组,都必须有明确的数组说明.当形参和实参两者类型不一致时,将会发生错误. (

0123-MSP430单片机使用acos函数问题和数组问题

问题描述 MSP430单片机使用acos函数问题和数组问题 使用该嵌在单片机里的加速度传感器,在给单片机编程时,说明书里可以用acos()函数,编译也没有问题,但是运行起来不可以.所以采用了查表法,在程序的开始声明并定义了一个二维数组,大约120个数据.编译时也没有问题,但单步调试时,到测量加速度的语句就停止了.不知道为什么.请哪位大神帮忙分析分析?谢谢..

函数返回值 数组-C++函数可以返回数组吗?

问题描述 C++函数可以返回数组吗? 1,如果不可以,一定要返回指针的话(指针和数组的关系我知道),我拿到这个指针时也不知道究竟多少位数据是有效的啊,万一指针指到了数组外面怎么办?,2,还有,可不可以用typedef定义一个数组类型为新的类型名,然后作为返回类型?(我只知道类,结构体什么的都是可以作为返回类型的)

关于java数组定义一个函数清除该数组的重复元素,返回一个不能浪费长度的数组.

问题描述 关于java数组定义一个函数清除该数组的重复元素,返回一个不能浪费长度的数组. package cn.xtgj.testarr; /** 目前有数组" int[] arr = {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回一个不能浪费长度的数组. * */ public class Arr { public void method(int[] arr){ int count=0; for(int i=0;i<arr.length;i++){ fo

函数指针和数组指针的区别,函数指针在结构体中怎么实现排序?

问题描述 函数指针和数组指针的区别,函数指针在结构体中怎么实现排序? 求咨询下,结构体浮点数组的排序,多重条件用函数指针传参数给库函数怎么实现排序呢? 解决方案 参考:http://blog.csdn.net/lethic/article/details/7781203 解决方案二: 函数指针及结构体 解决方案三: 函数指针:指向函数入口的指针,为指向代码段的一个地址. 数组指针:指向数组的指针.

变元-c语言如何在子函数读取主函数中的数组

问题描述 c语言如何在子函数读取主函数中的数组 要一次性全部读取这个数组,不需要改变数组. 比如我有个数组a[10].我想一次性在子函数中读取a从1到10的所有字符.如果不通过指针,可以用变元传递嘛 解决方案 你用数组做形参,传过去的实参相当于传指向数组的指针. 解决方案二: 标准C语言,没有你所说的变元的东东.变元,都是后来 C++/C# 才有的. 指针是最方便的,其它不想说了. 解决方案三: c语言就指针了吧!其他的没有指针直接了! 引用,变元都不是c的东西了! 说具体需求吧 解决方案四:

JavaScript函数及其参数数组简介

1 Js函数可以传入不同的参数 function writeNString(strMsg){ document.write(strMsg + "<br>"); } 2 Js函数返回值,js函数可以将运行的结果返回,函数可以视为一个黑盒子,使用参数输入数据后产生所需的运行结果 function one2N(intnumber){ var intTotal = 0; for(var i=0;i<=intnumber;i++){intTotal +=i; } return

PHP常用开发函数解析之数组篇[未完结]_php技巧

一.数组处理函数: 醉感觉:数组处理函数在PHP开发中非常常见,学习好数组处理函数至关重要.数组处理函数在实际应用中涉及到:数组的创建,字符串于数组的相互转换,数组转XML,数组转JSON.数组的检测.数组的合并于分割.数组的数目.获取数组中的所有值,获取数组中的所有键值[下标] 1.创建数组: $new = array(); 2. implode(分隔,str) 把数组值数据按指定字符连接起来 复制代码 代码如下: $arr = array('Hello','World!','Beautifu