Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 将项目的JS数组分组到一个';其他';基于价值的分组_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 将项目的JS数组分组到一个';其他';基于价值的分组

Javascript 将项目的JS数组分组到一个';其他';基于价值的分组,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我试图创建一些有用的饼图数据,但是当查看一些随机附加的信息时,饼图并没有变得有用 e、 g: 上面你可以看到英语是主要语言,所以我想做的是,如果计数小于5,例如,将所有这些项目分组到一个“其他”标签中。因此,生成的数组将是 0: {label: "English", count: 747, type: "language"} 1: {label: "Other", count: 19, type: "language"

我试图创建一些有用的饼图数据,但是当查看一些随机附加的信息时,饼图并没有变得有用

e、 g:

上面你可以看到英语是主要语言,所以我想做的是,如果计数小于5,例如,将所有这些项目分组到一个“其他”标签中。因此,生成的数组将是

0: {label: "English", count: 747, type: "language"}
1: {label: "Other", count: 19, type: "language"}
有人能帮助我们在JS中如何做到这一点吗

我的尝试:

  const getLanguageData = () => {
    let arr = metricsPies.filter((x) => {
      return x.type === 'language';
    });

    let others = [
      {
        label: 'Others',
        count: arr
          .filter((x) => {
            return x.count < 10;
          })
          .reduce(function (a, b) {
            return a + b['count'];
          }, 0),
        type: 'language',
      },
    ];

    let main = arr.filter((x) => {
      return x.count >= 10;
    });

    return main.concat(others);
  };
const getLanguageData=()=>{
设arr=metricsPies.filter((x)=>{
返回x.type==='language';
});
让其他人=[
{
标签:“其他人”,
计数:arr
.filter((x)=>{
返回x.count<10;
})
.减少(功能a、b){
返回a+b['count'];
}, 0),
键入:“语言”,
},
];
让main=arr.filter((x)=>{
返回x.count>=10;
});
回水干管(其他);
};

您可以将数组缩小为一个对象,将
计数
值添加到
其他
对象(如果该对象存在),或创建一个(如果该对象不存在):

const arr=[{“label”:“Chinese”,“count”:1,“type”:“language”},{“label”:“Chinese”,“count”:1,“type”:“language”},{“label”:“English”,“count”:747,“type”:“language”},{“label”:“French”,“count”:4,“type”:“language”},{“label”:“language”},{“language”},{“label”:“意大利语”,“count”:4,“type”:“language”},{“标签”:“韩语”、“计数”:1,“类型”:“语言”},{“标签”:“俄语”、“计数”:5,“类型”:“语言”},{“标签”:“西班牙语”、“计数”:4,“类型”:“语言”}]
常量结果=对象值(arr.reduce((acc,o)=>{
常量标签=o.count<5?“其他”:o.label
如果(!acc[label])acc[label]={…o,label}
else acc[标签].count+=o.count
返回acc
}, {}))

console.log(结果)
请添加您的尝试。
  const getLanguageData = () => {
    let arr = metricsPies.filter((x) => {
      return x.type === 'language';
    });

    let others = [
      {
        label: 'Others',
        count: arr
          .filter((x) => {
            return x.count < 10;
          })
          .reduce(function (a, b) {
            return a + b['count'];
          }, 0),
        type: 'language',
      },
    ];

    let main = arr.filter((x) => {
      return x.count >= 10;
    });

    return main.concat(others);
  };