Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中组合和分组数组_Javascript_Arrays - Fatal编程技术网

如何在javascript中组合和分组数组

如何在javascript中组合和分组数组,javascript,arrays,Javascript,Arrays,所以我得到了一些值,我想把它们放到一个数组中: var values = {25,23,21} var unit = {PCS,KG,PCS} 当我把它们放在一个数组中时,我希望它是这样的 array = {25:PCS,23:KG,21:PCS} 根据单位分组并添加,最终结果如下 totalval = {46:PCS,23:KG} 我只能将这些值放入单独的数组中,但我不知道如何将它们组合和分组。您必须先创建对象,然后将它们放入数组中 var obj1 =

所以我得到了一些值,我想把它们放到一个数组中:

    var values = {25,23,21}
    var unit = {PCS,KG,PCS}
当我把它们放在一个数组中时,我希望它是这样的

    array = {25:PCS,23:KG,21:PCS}
根据单位分组并添加,最终结果如下

    totalval = {46:PCS,23:KG}

我只能将这些值放入单独的数组中,但我不知道如何将它们组合和分组。

您必须先创建对象,然后将它们放入数组中

 var obj1 =  {
     value: 25,
     unit: "PCS"   
 };

 ...

 var array = [ obj1, obj2, obj3, ... ];

然后相应地聚合它们

您必须首先创建对象,然后将它们放入数组中

 var obj1 =  {
     value: 25,
     unit: "PCS"   
 };

 ...

 var array = [ obj1, obj2, obj3, ... ];
然后将它们相应地聚合起来

我对您的代码进行了重新组织,使其具有一定的意义,并得出以下结论:希望它适合您尝试执行的操作:

var items = [
    {value: 25, unit: 'PCS'},
    {value: 23, unit: 'KG'},
    {value: 21, unit: 'PCS'},
]

var numPCS = 0, numKG = 0;
var result = [];

items.forEach(function(elem, index) {
    if(elem.unit==='PCS') {
        numPCS+=elem.value;
    }
    if(elem.unit==='KG') {
        numKG+=elem.value;
    }
});

result.push({value: numPCS, unit: 'PCS'});
result.push({value: numKG, unit: 'KG'});

console.log(result);
结果如下:

我对您的代码进行了重新组织,使其具有一定的意义,并得出以下结论:希望它适合您尝试执行的操作:

var items = [
    {value: 25, unit: 'PCS'},
    {value: 23, unit: 'KG'},
    {value: 21, unit: 'PCS'},
]

var numPCS = 0, numKG = 0;
var result = [];

items.forEach(function(elem, index) {
    if(elem.unit==='PCS') {
        numPCS+=elem.value;
    }
    if(elem.unit==='KG') {
        numKG+=elem.value;
    }
});

result.push({value: numPCS, unit: 'PCS'});
result.push({value: numKG, unit: 'KG'});

console.log(result);
结果如下:

var值=[25,23,21],
单位=['件','千克','件'],
结果={},
tmpval={},
totalval={};
对于(变量i=0;i
var值=[25,23,21],
单位=['件','千克','件'],
结果={},
tmpval={},
totalval={};
对于(变量i=0;i
这些是对象,不是数组。哦,对不起,对于这类问题,我是新手。看这个问题,你似乎真的想要数组,它们形成一个对象。你也不能把数字作为属性名。这些是对象,不是数组。哦,对不起,我对这类问题还不太熟悉。看这个问题,你似乎真的想要数组,数组可以组成一个对象。您也不能将数字作为属性名。我刚才看到您将对象命名为
array
@MaxMastalerz
array
也是对象,它不是原始数据类型。然而,这个例子是错误的:它应该使用
对象
键或
数组
符号。我知道数组是一个对象,但这样称呼它是没有用的。就叫它数组吧。Plzzzdevil的拥护者:javascript中的对象在技术上是一个关联数组。:-)谢谢你Gertrude Stein:PDid我刚刚看到你命名了一个对象
数组
@MaxMastalerz
array
也是对象,它不是原始数据类型。然而,这个例子是错误的:它应该使用
对象
键或
数组
符号。我知道数组是一个对象,但这样称呼它是没有用的。就叫它数组吧。Plzzzdevil的拥护者:javascript中的对象在技术上是一个关联数组。:-)谢谢你,格特鲁德·斯坦:差不多了。我把你的小提琴简化了一点,做得很普通,效果很好!但如果我的单位价值是动态的呢?我怎么还能把他们分组呢?@James是的,我真的不确定OP想要什么。它是数组和对象的混合体,没有意义,所以我只是做了我认为类似的事情…@user2119308如果单位是动态的,把单位放在一个数组中,然后遍历它们,同时比较它们…差不多就是这样。我把你的小提琴简化了一点,做得很普通,效果很好!但如果我的单位价值是动态的呢?我怎么还能把他们分组呢?@James是的,我真的不确定OP想要什么。它是数组和对象的混合体,没有意义,所以我只是做了我认为类似的事情…@user2119308如果单元是动态的,将单元放入数组中,然后在比较它们的同时遍历它们。。。