js字典的两道练习题

1.从一个文本文件中读入名字和电话号码,然后将其存入一个字典。程序的功能包括:显示单个电话号码、显示所有的电话号码、增加新的电话号码。

2.程序存储一段文本中各个单词出现的次数。功能:显示每个单词出现的次数,但每个单词只显示一次。

编程:

function dictionary(){
this.dataStore = new Array();
this.displaySingle = displaySingle;
this.displayAll = displayAll;
this.insertTle = insertTle;
this.removeTle = removeTle;
this.clear = clear;
this.containsKey = containsKey;

}

function displaySingle(key){
console.log(this.dataStore[key]);
}
function displayAll(){
for(var key in this.dataStore){
console.log(key+"->"+this.dataStore[key]);
}
}
function containsKey(checkKey){
for(var key in this.dataStore){
if(key == checkKey){
return true;
}
}
}
function insertTle(key,value){
if(this.containsKey(key)){//有字典值
this.dataStore[key] = parseInt(value)+1;
}else{//无字典值
this.dataStore[key] = value;
}

}
function removeTle(key){
delete this.dataStore[key];
}
function clear(){
for(var key in this.dataStore){
delete this.dataStore[key];
}
}

测试练习题1:

var peopleTle = new dictionary();
peopleTle.insertTle("R",123456);
peopleTle.insertTle("A",223333);
peopleTle.insertTle("B",854845);
peopleTle.insertTle("C",777878);
peopleTle.insertTle("D",6966587);
peopleTle.displaySingle("B");
peopleTle.displayAll();
peopleTle.removeTle("C");
peopleTle.displayAll();
peopleTle.clear();
peopleTle.displayAll();

测试练习题2:

var str1 = ["this","is","a","fly","the","name","is","a"];

var str2 = "this mt ctt dt dt rt ot tp rt this this mt";

String.prototype.trim = function() {//去空格处理
var str = this,
str = str.replace(/^\s\s*/, ","),
ws = /\s/,
i = str.length;
while (ws.test(str.charAt(--i)));
return str.slice(0, i + 1);
}

var t = str2.trim();
console.log(t);
console.log(str2);
console.log(typeof (t));
var arr2 = t.replace(/\s/g,",").split(",");
var arr3 = [];
for(var i=0;i<arr2.length;i++){
arr3.push(arr2[i]);
}

function checkNum(str1){
var word = new dictionary();
for(var i = 0;i<str1.length;i++){
if(str1[i]==""||str1[i]==undefined||str1[i]==null){
return false;
}else{
word.insertTle(str1[i],1);
}
}
word.displayAll()
}
checkNum(str1);
console.log("&&&&&&&&&&&&&&&&&&&&");
checkNum(arr3);

时间: 2024-10-26 07:30:55

js字典的两道练习题的相关文章

逛园子,看到个练习题,小试了一把(淘宝ued的两道小题)

闲来无事,逛园子,充充电.发现了一个挺有意思的博文,自己玩了一把. 第一题:使用 HTML+CSS 实现如图布局,border-widht 1px,一个格子大小是 60*60,hover时候边框变为橘红色(兼容IE6+,考虑语义化的结构) 效果图: 简单分析一下: 使用伪类 :hover的时候相对定位 改变z-index, 代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta c

ACM/ICPC 之 两道dijkstra练习题(ZOJ1053(POJ1122)-ZOJ1053)

两道较为典型的单源最短路径问题,采用dijkstra解法 本来是四道练习题,后来发现后面两道用dijkstra来解的话总觉得有点冗余了,因此暂且分成三篇博客(本篇以及后两篇). ZOJ1053(POJ1122)-FDNY to the Rescue! 1 //POJ1122-ZOJ1053 2 //dijkstra-需要记录路径 3 //给出n个路口的邻接矩阵,求给定多个火警到失火点的时间及任一路径 4 //注意输入最后一行时,cin.getline需要两次,猜测需要接受邻接矩阵最后一行其他字符

ACM/ICPC 之 SPFA范例两道(POJ3268-POJ3259)

两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory:360K #include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<algorithm> using namespace std; #define

Button的Click事件与js函数的两种不同顺序触发方式

先执行js,或者先执行Click事件,最近就遇到了这个问题,开始弄了两个按钮分别执行,那才叫一个蛋疼... 1.先执行js,再执行Button的Click函数 <asp:Button ID="btn_delete" runat="server" Text="提交" onclick="button1_Click"/> 前台js为 <script language="javascript"&g

js如何合并两个数组

js如何合并两个数组:本章节介绍一下如何合并两个数组,希望对大家有所帮助.实例代码:实例一: var arrOne=["蚂蚁部落","青岛市南区",3]; var arrTwo=["分享交流","antzone",600]; console.log(arrOne.concat(arrTwo)); console.log(arrOne); console.log(arrTwo); 由以上代码的输出结果可以看出concat()函数

两道有意思的题目

碰到两道有意思的题目,记录一下. 题目一: 问,对于任意一个正整数,是否存在一个它的倍数全是由1和0组成? 例如: 1 * 1 = 1 2 * 5 = 10  (2的5倍是10,10由1和0组成) 3 * 37 = 111 (3 的 37 倍是111,111 全部由1组成) 4 * 25 = 100 (4 的 25 倍是100,100 由1和0组成) 5 * 20 = 100 (5 的 20 倍是100,100由1 和 0 组成) …… 现在需要判断,随便给一个正整数,是否存在一个它的倍数满足题

[sdut]2623+[sdut]2878//四五届省赛中的两道数学期望

两道数学期望的题今天一起总结上来. 1.the number of steps(第四届省赛) 1 #include <iostream> 2 #include <string.h> 3 #include <iomanip> 4 using namespace std; 5 double dp[100][100]; 6 int n; 7 double a,b,c,d,e; 8 9 int main() 10 { 11 while(cin>>n&&

分享两道笔试题目

前几天,给成都的某家公司投了个简历,给发了两道笔试题目,与大家分享一下.附上自己的解题过程,写得不好的地方,还请博友多多指教. 一 .  设计程序输出销售及收费清单 一个电商平台对在其平台之上销售的除了书籍.食品以及药物以外的商品收取 10% 的费用.而对于进口的商品则额外收取 5% 的附加费用.对于平台抽取的费用计算时,舍入的规则是:对于 n% 抽取率,价格为 p的商品, np/100 的值就近舍入到 0.05(如: 7.125 -> 7.15, 6.66 -> 6.70 ). 卖家卖出一些

告诉我图样图森破的两道简单C++笔试题

今晚刷了一大堆的笔试题,中规中矩,但是有两道做得很快但是都错了的题目,印象深刻. (要找工作的大四渣有没有共鸣,在学校明明很努力,但是总是跟不上时代,没有厉害的项目,也没有过人的竞赛成绩,内推屡屡失败,前天阿里巴巴在线笔试也被虐死,真心迷惘,唯独刷题搞笔试了.) 第一道题是关于宏定义的. #include<iostream> using namespace std; #define fun(n) (n-1)*n int main() { int x=3; cout<<fun(x+3