Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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
如何在angular或javascript中计算分组数组的长度?_Javascript_Angular - Fatal编程技术网

如何在angular或javascript中计算分组数组的长度?

如何在angular或javascript中计算分组数组的长度?,javascript,angular,Javascript,Angular,我想知道每组的长度。我们怎样才能做到 例如array.group['secound category'].length您可以使用array.filter: var数组=[ { 姓名:“你好1”, 核对:对, 颜色:“#1ac3ec”, 组:'第一类' }, { 姓名:“你好2”, 核对:对, 颜色:“#7dc55c”, 组:'第一类' }, { 姓名:“你好3”, 核对:对, 颜色:“#005073”, 组:'第二类' },{ 姓名:“你好4”, 核对:对, 颜色:“#fbb330”, 组:'

我想知道每组的长度。我们怎样才能做到


例如array.group['secound category'].length

您可以使用array.filter:

var数组=[
{
姓名:“你好1”,
核对:对,
颜色:“#1ac3ec”,
组:'第一类'
},
{
姓名:“你好2”,
核对:对,
颜色:“#7dc55c”,
组:'第一类'
},
{
姓名:“你好3”,
核对:对,
颜色:“#005073”,
组:'第二类'
},{
姓名:“你好4”,
核对:对,
颜色:“#fbb330”,
组:'第二类'
}
];
var len1=array.filter(e=>e.group=='first category')。长度;
控制台日志(len1);
var len2=array.filter(e=>e.group=='second category')。长度;

控制台日志(len2)您可以使用纯JavaScript来完成。用于按类别创建一个组,然后您可以简单地计算元素的数量,例如:

array = [  
  {
    name: 'hello 1',
    checked: true,
    color:'#1ac3ec',
    group:'first category'
  },
  {
    name: 'hello 2',
    checked: true,
    color:'#7dc55c',
    group:'first category'
  },
  {
    name: 'hello 3',
    checked: true,
    color:'#005073',
    group:'second category'
  },{
    name: 'hello 4',
    checked: true,
    color:'#fbb330',
    group:'second category'
    }
]
工作演示:

const数组=[
{
姓名:“你好1”,
核对:对,
颜色:“#1ac3ec”,
组:'第一类'
},
{
姓名:“你好2”,
核对:对,
颜色:“#7dc55c”,
组:'第一类'
},
{
姓名:“你好3”,
核对:对,
颜色:“#005073”,
组:'第二类'
},{
姓名:“你好4”,
核对:对,
颜色:“#fbb330”,
组:'第二类'
}
];
常量组=数组。减少((acc,项目)=>{
如果(!acc[项目组]){
acc[项目组]=[];
}
acc[项目组].推送(项目);
返回acc;
}, {});
日志(组['first category'].length);

log(组['second category'].length)
如果只需要查找一个特定组名的长度,请使用
.filter
;如果需要计算所有组名的长度,请使用
reduce

const输入=[
{
姓名:“你好1”,
核对:对,
颜色:“#1ac3ec”,
组:'第一类'
},
{
姓名:“你好2”,
核对:对,
颜色:“#7dc55c”,
组:'第一类'
},
{
姓名:“你好3”,
核对:对,
颜色:“#005073”,
组:'第二类'
},{
姓名:“你好4”,
核对:对,
颜色:“#fbb330”,
组:'第二类'
},{
姓名:“你好4”,
核对:对,
颜色:“#fbb330”,
组:'唯一类别'
}
];
const groups=input.reduce((累计,{group})=>{
累计[组]=(累计[组]| 0)+1;
返回累计;
}, {});

控制台日志(组)虽然冗长,但这应该是更干净的解决方案:

group['first category'].length

它应该输出2、4还是8?有两个组:“第一类”和“第二类”。想数一数这些长度吗?谢谢。。我还需要一个解决方案。。如果我的总长度为4,那么我只想显示2个计数作为文本,那么我们可以这样做吗?
var array = [  
  {
    name: 'hello 1',
    checked: true,
    color:'#1ac3ec',
    group:'first category'
  },
  {
    name: 'hello 2',
    checked: true,
    color:'#7dc55c',
    group:'first category'
  },
  {
    name: 'hello 3',
    checked: true,
    color:'#005073',
    group:'second category'
  },{
    name: 'hello 4',
    checked: true,
    color:'#fbb330',
    group:'second category'
    }
];

var name = checked = color = group = 0;
array.forEach(function(item){
if(item.name){
    name++;
}
if(item.checked){
    checked++;
}
if(item.color){
    color++;
}
if(item.group){
    group++;
}
});
console.log(name);
console.log(checked);
console.log(color);
console.log(group);