首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ESLINT 6实现json数组

用ESLINT 6实现json数组
EN

Stack Overflow用户
提问于 2019-10-21 19:58:13
回答 2查看 66关注 0票数 0

我不能在尊重ESlint在javascript中的6项标准的同时,建立一个计数我的事件的algo。我的输入表是:

代码语言:javascript
复制
[
  {
    "id": 2,
    "name": "Health",
    "color": "0190fe"
  },
  {
    "id": 3,
    "name": "Agriculture",
    "color": "0190fe"
  },
  {
    "id": 1,
    "name": "Urban planning",
    "color": "0190fe"
  },
  {
    "id": 1,
    "name": "Urban planning",
    "color": "0190fe"
  }
]

我想要:

{“城市规划”:2,“卫生”:1,.}

但这不适用于ESLINT / REACT编译.

这是我的密码:

代码语言:javascript
复制
    const jsonToIterate = *'MyPreviousInputJson'*
    const names = []
    jsonToIterate.map(item => (names.push(item.name)))

    const count = []
    names.forEach(item => {
      if (count[item]){
        count.push({text: item, value: 1})
      } else {
        count.forEach(function(top){top.text === item ? top.value =+ 1 : null})
      }
    })

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-21 20:01:28

最后,您需要一个对象,而不是数组,所以count应该是{}。如果您实际上没有从电话中返回任何内容,我也不会使用map。您可以为此使用reduce

代码语言:javascript
复制
let counts = topicsSort.reduce((p, c, i, a) => {
   if (!p.hasOwnProperty(c.name)) p[c.name] = 0;
   p[c.name]++;

   return p;
}, {});
票数 1
EN

Stack Overflow用户

发布于 2019-10-21 20:21:31

我半个人要关闭这个复制,因为你所要求的只是一个频率计数器。但无论如何,这里有一个答案:

代码语言:javascript
复制
const jsonToIterate = *'MyPreviousInputJson'*;
const names = {};

jsonToIterate.map(obj => {
  if(obj.name in names){
    names[obj.name]++
  }
  else{
    names[obj.name] = 1;
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58493297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档