JavaScript | 获取数组中的单词并统计出现次数

HTML5学堂(码匠):如何通过JavaScrip实现数组元素的查找?在一个数组当中,找到所有的单词,并统计每个单词出现的次数。

功能需求

在一个自定义数组当中,包含多个单词,请使用JavaScipt获取数组中的每个单词,并统计出每个单词出现的次数。

功能分析与实现思路

可以借助对象的特性,使用对象属性表示数组中的具体单词,使用对象属性的属性值表示相应单词出现的次数。

完整的代码实现

代码输出结果

相关知识

对象属性的两种表示方法

对于对象来说,可以使用“对象.属性”的方法来表示,也可以使用“对象[属性]”的方法来表示。

for in循环

for-in循环用于遍历对象中的所有属性和属性值。很适用于不确定对象中有什么属性的时候使用。基本语法为:

for(变量 in 对象){ 语句 }

其中随着循环的进行,变量表示对象中的各个属性,而“对象[变量]”则表示对象中属性对应的属性值。

代码解析

1. sort方法,是针对数组进行排序,这个步骤可以省略,不排序也能够直接输出。

2. 通过for循环,检测数组中的每个值是否在obj中存在,如果不存在,则设置这个属性,并将属性值赋值为1,如果当前obj中已存在相应单词,则令属性值+1。

3. 到循环结束,即可获得到所有的单词以及相应单词的个数。

4. 通过for-in循环,遍历并输出对象中的所有属性和属性值。

备注:实现该功能需求的方法有多种,也可以通过其他手段或方法来实现。

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2017-02-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

稳扎稳打JS——this

this的值是在运行时确定的 JS中的this究竟代表什么,这是在程序运行时根据上下文环境确定,可以分为以下几种情况。 1. 全局作用域中的this 在全局作...

4035
来自专栏开发与安全

面向对象编程风格 VS 基于对象编程风格(boost::bind/function)

本文主要通过实现Thread 类来展现两种编程风格的不同点。 很多人没有区分“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)缺...

2300
来自专栏小二的折腾日记

day5(面向对象2)

542
来自专栏程序员互动联盟

【编程基础】C语言之指针二

指针和数组 C语言的数组表示一段连续的内存空间,用来存储多个特定类型的对象。与之相反,指针用来存储单个内存地址。数组和指针不是同一种结构因此不可以互相转换。而数...

3594
来自专栏牛肉圆粉不加葱

(3) - Scala case class那些你不知道的知识

除了在模式匹配中使用之外,unapply 方法可以让你结构 case class 来提取它的字段,如:

821
来自专栏C语言及其他语言

【每日一题】问题 1117: K-进制数

考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.

912
来自专栏云霄雨霁

Java 对象初始化顺序

1288
来自专栏项勇

笔记23 | 复习for/while/do...while的几种循环用法

1687
来自专栏JetpropelledSnake

Python面试题之Python中的类和实例

类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规范,从这个角度来看,在以后...

912
来自专栏我的博客

Objective-C基础知识

1.标示符:字母、下划线、美元符号和数字组成,字母和下划线美元符号开头,区分大小写 2.代码区存放代码,数据区存放静态变量和字符串常量,栈存放局部变量,堆存放...

1963

扫码关注云+社区