Js 集合运用
1、给定一个单词good 要求输入 g1 o2 d1 (字母+加字母个数)
方法一:
<script type="text/javascript">
var arrObj = [];
var str = 'good';
var arr = str.split('');
for (var i = 0; i < arr.length; i++) {
var _j = -1;
for (var j = 0; j < arrObj.length; j++) {
if (arrObj[j].key == arr[i]) {//判断数组中是否已存在该字符串
_j = j;
}
}
var num = arrObj[_j] != null ? (arrObj[_j].value + 1) : 1;
if (_j != -1) { arrObj.splice(_j, 1); }
arrObj.push({ key: arr[i], value: num });
}; for (var z = 0; z < arrObj.length; z++) {
document.write(arrObj[z].key + arrObj[z].value);
}
</script>
方法二:
var arrObj = [];
var str = 'goofo d';
var arr = str.split('');
for (var i = 0; i < arr.length; i++) {
var _j = -1;
for (var j = 0; j < arrObj.length; j++) {
if (arrObj[j].key == arr[i]) {//判断数组中是否已存在该字母
_j = j;
}
}
if (_j == -1) {
if (arr[i] !== " ") {
arrObj.push({ key: arr[i], value: 1 });
}
}
else if (_j != -1) {
arrObj[_j].key = arr[i];
arrObj[_j].value = arrObj[_j].value + 1;
}
}; for (var z = 0; z < arrObj.length; z++) {
console.log(arrObj[z].key + arrObj[z].value);
}
方法三:
var obj = {}
var arr = str.split("");
arr.forEach(function (v, i) {
obj[v] = obj[v] ? obj[v] + 1 : 1;
});
console.log(obj);
Js 集合运用的更多相关文章
- js集合set类的实现
js集合set类的实现 /*js集合set类的实现*/ function Set() { this.dataStore = []; this.add = add;//新增元素 this.remove ...
- 【转】Ext JS 集合1713个icon图标的CSS文件
原文:http://extjs.org.cn/node/715 由于最近在研究Extjs4.1.1,没想到Extjs没有自带的iconCls所使用的图标样式css,就是用那个写那个的,纠结了半天,网上 ...
- js创建对象,放进js集合
var list=[]; for (var i=0;i<nodes.length;i++){ if(nodes[i].type=='user'){ person=new Object(); pe ...
- js 集合
[深入理解javascript原型和闭包系列 ] 历时半月完稿,求推荐 jQuery 学习笔记(未完待续) JavaScript作用域原理(三)——作用域根据函数划分
- js集合
var list = {};//声明 List[0] = 52;//赋值 List[1] = 57;//赋值
- js 实现数据结构 -- 集合
原文: 在Javascript 中学习数据结构与算法. 概念: 即数学中的集合,在计算机科学中被应用成数据结构. 当然,集合中的数据具有不重复的特性.js 集合的原理大致上是 Object 的键值对 ...
- io.js入门(二)—— 所支持的ES6(上)
io.js的官网上有专门介绍其所支持的ES6特性的页面(点我查看),上面介绍到,相比nodeJS,io.js已从根本上支持了新版V8引擎上所支持的ES6特性,无需再添加任何运行时标志(如 --harm ...
- js动态添加和删除标签
html代码 <h1>动态添加和删除标签</h1> <div id="addTagTest"> <table> <thead& ...
- MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
一.count.distinct与group 1.count函数:查询文档数,如下图: 2.distinct:去重,用法:db.runCommand({distinct:"集合名" ...
随机推荐
- 1、课程简介-Spring 注解驱动开发
1.课程简介-Spring 注解驱动开发
- springboot o.a.tomcat.util.scan.StandardJarScanner : Failed to scan [file:/D:/apache-maven-3.0.5[系统找不到指定路径]
报错信息: 2019-11-04 11:05:52.404 WARN 4512 --- [ main] o.a.tomcat.util.scan.StandardJarScanner : Failed ...
- min_25筛学习笔记【待填坑】
看见ntf和pb两位大佬都来学了,然后就不自觉的来学了. 我们考虑这样一个问题. $$ans=\sum_{i=1}^nf(i)$$其中$1\leq n\leq 10^{10}$ 其中$f(i)$是一个 ...
- 数据结构实验之栈与队列六:下一较大值(二)(SDUT 3333)
#include <bits/stdc++.h> using namespace std; int a[1000006]; int b[1000006]; int sta[100006]; ...
- gitlab高可用模式
高可用模式 企业版 社区版 我们这里说一下成本比较低的主备模式,它主要依赖的是DRBD方式进行数据同步,需要2台ALL IN ONE的GitLab服务器,也就是通过上面安装方式把所有组件都安装在一起的 ...
- MySQL数据分析(7)-SQL的两大学习框架
大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>课程,前面的课程基本上我把MySQL的原理都做了一定的介绍,有好多朋友说学习MySQL是没有逻辑的,其实jacky是非 ...
- 二十五、grub (Boot Loader) 以及修复grub
双系统安装(先Windows后Linux,以免windows NTloader会覆盖Linux loader) GRUB Grand Uniform Bootloader CentOS5,6 grub ...
- centos7 安装 mysql5.6(mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz)
1.到mysql官网下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择以下截图中的版本 2.下载后上传到lin ...
- ICEM—气体罐子
原视频下载地址:https://yunpan.cn/cPfzaLzkcFXVK 访问密码 62cf
- Java并发指南6:Java内存模型JMM总结
本文转载自互联网,侵删 在前面的文章中我们介绍了Java并发基础和线程安全的概念,以及JMM内存模型的介绍,包括其定义的各种规则.同时我们也介绍了volatile在JMM中的实现原理,以及Lock ...