有关js的三目运算符,请问pre[item]?的意思是什么?

`const str = 'jshdjsihh';

 const obj = str.split('').reduce((pre,item) => {
     pre[item] ? pre[item] ++ : pre[item] = 1
     return pre
 },{})

console.log(obj) // {j: 2, s: 2, h: 3, d: 1, i: 1}`
在学习reduce的时候看到的一段代码,
pre[item] ? pre[item] ++ : pre[item] = 1
请问上面这句中pre[item]?是什么意思?看了好久没看懂

阅读 2.6k
3 个回答

pre是累计器,默认设置的是{},pre[item]检查是否有key值是item,有则+1,无则设置该key并赋值为1

参数啊,pre是累计,item是数组元素

  • 这段代码做的事情是统计字符串中各个字母出现的次数
  • 存储统计次数是一个对象,key是字母,value是出现的次数
  • 三目运算,判断对象中有没有这个key,有的话,次数+1,即:pre[item]++;没有初始化为1
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题