Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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 - Fatal编程技术网

Javascript 根据对象值创建子数组(两个对象的两个分组)

Javascript 根据对象值创建子数组(两个对象的两个分组),javascript,Javascript,我有一个对象数组(dictionary是Python中的术语,但在本例中我使用的是Javascript)。我想做的是把所有的东西都放在不同的对象中。我的第一次尝试是基于库存值创建两个数组。然后,对于这两个数组中的每一个,我想基于目标值创建三个不同的数组 我想我已经失去了逻辑,因为它不适用于第二组(目标) var库存=[ {ID:“K111”,目标:“一”,清单:“第二”}, {ID:“K112”,目标:“两个”,清单:“第二个”}, {ID:“K113”,目标:“一”,清单:“第二”}, {I

我有一个对象数组(dictionary是Python中的术语,但在本例中我使用的是Javascript)。我想做的是把所有的东西都放在不同的对象中。我的第一次尝试是基于库存值创建两个数组。然后,对于这两个数组中的每一个,我想基于目标值创建三个不同的数组

我想我已经失去了逻辑,因为它不适用于第二组(目标

var库存=[
{ID:“K111”,目标:“一”,清单:“第二”},
{ID:“K112”,目标:“两个”,清单:“第二个”},
{ID:“K113”,目标:“一”,清单:“第二”},
{ID:“K114”,目标:“三”,清单:“第二”},
{ID:“K132”,目标:“一”,清单:“第一”}
];
var目标=[“一”、“二”、“三”];
var存货=[“第二”、“第一”];
//为每个资源清册创建阵列(2个可能的值)
对于(变量i=0;i

您可以使用
reduce
方法返回一个对象,首先按库存进行分组,然后按目标进行分组。要返回数组数组作为结果,您可以使用
Object.values
map

var数据=[{ID:“K111”,目标:“一”,清单:“第二”},{ID:“K112”,目标:“二”,清单:“第二”},{ID:“K113”,目标:“一”,清单:“第二”},{ID:“K114”,目标:“三”,清单:“第二”},{ID:“K132”,目标:“一”,清单:“第一”};
var res=数据减少((r,e)=>{
设{Objective,Inventory}=e;
r[Inventory]=r[Inventory]| |{}
r[库存][目标]=r[库存][目标]|{}
分配(r[存货][目标],e);
返回r;
}, {})
var数组=Object.values(res).map(Object.values)
console.log(数组)

console.log(res)
@Nenan Vracar Nice one。一项观察。K111不见了,因为我想有一个复制品?@Apolo Radomer是的。有没有办法修改代码并将其保存?我想没有。可能是另一个功能,但没有减少。是吗?是的。我可能会提出另一个问题。我在尝试。因此,根据场景,我将使用主体构建(innerHTML)表。根据上面我的查询中不存在的第三个对象,它将显示/隐藏一些其他对象(数字)。所以我可能也需要汇总数据。