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 条评论
登录 后参与评论

相关文章

来自专栏数据结构笔记

python基础类型(三):可调用类型——函数和方法

在 python中所有的类型都是对象,即使是 int,float这些其他语言中的基础类型在 python中也是以对象的形式存在,函数和方法也不例外。

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

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

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

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

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

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

3444
来自专栏云霄雨霁

Java 对象初始化顺序

1118
来自专栏C/C++基础

C++11委托构造函数

委托构造函数(Delegating Constructor)由C++11引入,是对C++构造函数的改进,允许构造函数通过初始化列表调用同一个类的其他构造函数,目...

801
来自专栏大闲人柴毛毛

稳扎稳打JS——this

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

3715
来自专栏余林丰

“不可变的对象”与“不可变的对象引用”

什么是不可变的对象呢?我们都知道String是不可变的,如果有涉及大量的字符串拼接我们最好不要用String,虽然我们在代码中可以这样写: String str...

1999
来自专栏GreenLeaves

auguements实参对象的数组化

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ti...

19010
来自专栏程序生活

Java学习(二)Static关键字的理解

在讲Static之前,引入一个小题 ? 答案为“c” ? 运行结果 Cannot make a static reference to the non-stat...

3518
来自专栏开发与安全

从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)

首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: template < class _Ty, cl...

2460

扫码关注云+社区