【JavaScript】内置对象 - 字符串对象 ⑤ ( 判断对象中是否有某个属性 | 统计字符串中每个字符出现的次数 )
文章目录
- 一、判断对象中是否有某个属性
- 1、获取对象属性
- 2、判定对象是否有某个属性
- 二、统计字符串中每个字符出现的次数
- 1、算法分析
- 2、代码示例
String 字符串对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String
一、判断对象中是否有某个属性
1、获取对象属性
给定对象 obj , 使用 [] 运算符 可以获取 指定 键 的 对应的属性值 ;
// 给定一个对象var obj = {name: 'Tom',age: 18}
如果通过 obj[属性名称] 获取对应的 属性值 , 如果存在该属性名称键值对 , 则返回对应的值 ;
如果不存在 指定 属性名称对应的 键值对 , 则返回 undefined 未定义值 ;
在 if 语句中 , 传入 条件表达式 , 如果 条件表达式 的结果是 有意义的值 如 字符串 , 数字 等值 , 则会被转为 true ;
如果 条件表达式 的结果是 undefined 值 , 则会被转为 false 值 ;
2、判定对象是否有某个属性
代码示例 :
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><!-- 设置 meta 视口标签 --><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>JavaScript</title><style></style><script>// 给定一个对象var obj = {name: 'Tom',age: 18}if(obj['name']) {console.log("obj 中有 name 属性");} else {console.log("obj 中没有 name 属性");}if(obj['age']) {console.log("obj 中有 age 属性");} else {console.log("obj 中没有 age 属性");}if(obj['sex']) {console.log("obj 中有 sex 属性");} else {console.log("obj 中没有 sex 属性");}console.log(obj['sex']);</script>
</head><body>
</body></html>
执行结果 :

二、统计字符串中每个字符出现的次数
1、算法分析
首先 , 使用 String 字符串对象的 charAt 函数 , 遍历整个字符串的所有字符 ;
然后 , 创建一个对象 , 将每个字符作为对象的 键 Key , 也就是 对象的 属性名 ;
每次使用 charAt 函数遍历时 , 查询对象中是否有该字符对应的属性键值对 ;
- 如果没有 , 则将该 字符 作为属性名 设置给该对象 , 并设置值 1 ;
- 如果有 , 则取出该字符 属性名 对应的 值 , 将该值自增后 , 再设置回去 ;
2、代码示例
代码示例 :
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><!-- 设置 meta 视口标签 --><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>JavaScript</title><style></style><script>// 给定一个字符串var str = 'Hello World Tom and Jerry';// 创建空对象 , 用于存储 字符 键 和 字符出现次数 值 var obj = {};for(var i = 0; i < str.length; i++) {// 获取地 i 个字符var char = str.charAt(i);if(obj[char]) {// 有该属性obj[char] += 1;} else {// 没有该属性obj[char] = 1;}}// 打印对象console.log(obj);</script>
</head><body>
</body></html>
执行结果 :

相关文章:
【JavaScript】内置对象 - 字符串对象 ⑤ ( 判断对象中是否有某个属性 | 统计字符串中每个字符出现的次数 )
文章目录 一、判断对象中是否有某个属性1、获取对象属性2、判定对象是否有某个属性 二、统计字符串中每个字符出现的次数1、算法分析2、代码示例 String 字符串对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String 一、判…...
Linux环境下测试服务器的DDR5内存性能
要在Linux环境下测试服务器的DDR5内存性能,可以采用以下几种方法和工具: ### 测试原理 内存性能测试主要关注以下几个关键指标: - **带宽**:内存每秒能传输的数据量。 - **延迟**:内存访问请求从发出到完成所需的时间…...
19、matlab信号预处理中的中值滤波(medfilt1()函数)和萨维茨基-戈雷滤波滤(sgolayfilt()函数)
1、中值滤波:medfilt1()函数 说明:一维中值滤波 1)语法 语法1:y medfilt1(x) 将输入向量x应用3阶一维中值滤波器。 语法2:y medfilt1(x,n) 将一个n阶一维中值滤波器应用于x。 语法3:y medfilt1(x,n…...
Scala 练习一 将Mysql表数据导入HBase
Scala 练习一 将Mysql表数据导入HBase 续第一篇:Java代码将Mysql表数据导入HBase表 源码仓库地址:https://gitee.com/leaf-domain/data-to-hbase 一、整体介绍二、依赖三、测试结果四、源码 一、整体介绍 HBase特质 连接HBase, 创建HBase执行对象 初始化…...
前端工程化:基于Vue.js 3.0的设计与实践
这里写目录标题 《前端工程化:基于Vue.js 3.0的设计与实践》书籍引言本书概述主要内容作者简介为什么选择这本书?结语 《前端工程化:基于Vue.js 3.0的设计与实践》书籍 够买连接—>https://item.jd.com/13952512.html 引言 在前端技术日…...
Linux☞进程控制
在终端执行命令时,Linux会建立进程,程序执行完,进程会被终止;Linux是一个多任务的OS,允许多个进程并发运行; Linxu中启动进程的两种途径: ①手动启动(前台进程(命令gedit)...后台进程(命令‘&’)) ②…...
mybatis离谱bug乱转类型
字符串传入的参数被转成了int: Param("online") String online<if test"online 0">and (heart_time is null or heart_time <![CDATA[ < ]]> UNIX_TIMESTAMP(SUBDATE(now(),INTERVAL 8 MINUTE)) )</if><if test"…...
视频监控管理平台LntonCVS视频汇聚平台充电桩视频监控应用方案
随着新能源汽车的广泛使用,公众对充电设施的安全性和可靠性日益重视。为了提高充电桩的安全管理和站点运营效率,LntonCVS公司推出了一套全面的新能源汽车充电桩视频监控与管理解决方案。 该方案通过安装高分辨率摄像头,对充电桩及其周边区域进…...
VS环境Python:深度探索与实用指南
VS环境Python:深度探索与实用指南 在编程领域,VS环境(Visual Studio环境)与Python的结合,为开发者们提供了一种强大而灵活的开发体验。这种结合不仅提升了开发效率,还增强了代码的可读性和可维护性。然而&…...
SpringBoot整合SpringSecurit(二)通过token进行访问
在文章:SpringBoot整合SpringSecurit(一)实现ajax的登录、退出、权限校验-CSDN博客 里面,使用的session的方式进行保存用户信息的,这一篇文章就是使用token的方式。 在其上进行的改造,可以先看SpringBoot…...
【算法训练 day50 打家劫舍、打家劫舍Ⅱ、打家劫舍Ⅲ】
目录 一、打家劫舍-LeetCode 198思路 二、打家劫舍Ⅱ-LeetCode 213思路 三.打家劫舍Ⅲ-LeeCode 337思路 一、打家劫舍-LeetCode 198 Leecode链接: leetcode 198 思路 dp数组含义为:当前数组范围下能偷到的最多的钱。递推公式为:dp[j] max(dp[j-2]nums[j],dp[j-1…...
YOLOv8改进 | 卷积模块 | 在主干网络中添加/替换蛇形卷积Dynamic Snake Convolution
💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 蛇形动态卷积是一种新型的卷积操作,旨在提高对细长和弯曲的管状结构的特征提取能力。它通过自适应地调整卷积核的权重࿰…...
深入解析力扣183题:从不订购的客户(LEFT JOIN与子查询方法详解)
关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 在本篇文章中,我们将详细解读力扣第183题“从不订购的客户”。通过学习本篇文章,读者将掌握如何使用SQL语句来解决这一问题,并了解相关的复杂…...
牛客NC32 求平方根【简单 二分 Java/Go/C++】
题目 题目链接: https://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** para…...
王道408数据结构CH3_栈、队列
概述 3.栈、队列和数组 3.1 栈 3.1.1 基本操作 3.1.2 顺序栈 #define Maxsize 50typedef struct{ElemType data[Maxsize];int top; }SqStack;3.1.3 链式栈 typedef struct LinkNode{ElemType data;struct LinkNode *next; }*LiStack;3.2 队列 3.2.1 基本操作 3.2.2 顺序存储…...
Angular 由一个bug说起之六:字体预加载
浏览器在加载一个页面时,会解析网页中的html和css,并开始加载字体文件。字体文件可以通过css中的font-face规则指定,并使用url()函数指定字体文件的路径。 比如下面这样: css font-face {font-family: MyFont;src: url(path/to/font.woff2…...
并查集进阶版
过关代码如下 #define _CRT_SECURE_NO_WARNINGS #include<bits/stdc.h> #include<unordered_set> using namespace std;int n, m; vector<int> edg[400005]; int a[400005], be[400005]; // a的作用就是存放要摧毁 int k; int fa[400005]; int daan[400005]…...
贪心(不相交的开区间、区间选点、带前导的拼接最小数问题)
目录 1.简单贪心 2.区间贪心 不相交的开区间 1.如何删除? 2.如何比较大小 区间选点问题 3.拼接最小数 1.简单贪心 比如:给你一堆数,你来构成最大的几位数 2.区间贪心 不相交的开区间 思路: 首先,如果有两个…...
[力扣题解] 617. 合并二叉树
题目:617. 合并二叉树 思路 递归法遍历,随便一种遍历方式都可以,以前序遍历为例; 代码 class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if(root1 NULL){return root2;}if(root2 NULL){r…...
kafka-消费者组(SpringBoot整合Kafka)
文章目录 1、消费者组1.1、使用 efak 创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本1.2、创建生产者发送消息1.3、application.yml配置1.4、创建消费者监听器1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、消费…...
Python张量框架选型不是技术问题,而是组织问题:CTO必须在立项前确认的5个战略问题(含人才储备周期、长期维护成本、专利风险审计清单)
第一章:Python张量框架选型不是技术问题,而是组织问题当团队在 PyTorch、TensorFlow 和 JAX 之间反复争论“哪个性能更好”或“哪个 API 更优雅”时,往往已陷入技术决定论的误区。真正制约张量框架落地效果的,是组织内部的协同惯性…...
TinyGPSPlusPlus:嵌入式NMEA解析库深度指南
1. TinyGPSPlusPlus:面向嵌入式系统的可定制化NMEA解析库深度解析1.1 库定位与工程价值TinyGPSPlusPlus 是一款专为资源受限嵌入式平台(尤其是Arduino生态)设计的轻量级、高可定制化的NMEA协议解析库。其核心工程价值在于:在极小内…...
ESP32蓝牙开发必看:如何快速通过SIG认证并兼容最新5.3规范
ESP32蓝牙开发实战:从SIG认证到5.3规范兼容的全流程指南 当你在咖啡厅用无线耳机听歌时,是否想过这些设备背后的技术标准如何确保全球互通?作为ESP32开发者,通过蓝牙技术联盟(SIG)认证不仅是法律要求&#…...
UVM避坑指南:为什么你的sequence卡住了?item_done没调用的常见问题排查
UVM验证中的sequence卡死问题:item_done未调用的深度排查手册 在芯片验证领域,UVM框架的sequence机制堪称验证工程师的"瑞士军刀",但这把利器偶尔也会出现卡壳的情况。想象一下这样的场景:你的验证环境已经运行了数百个…...
内容解锁工具:突破付费墙限制的开源解决方案
内容解锁工具:突破付费墙限制的开源解决方案 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代,优质内容常被付费墙阻隔,形成信…...
计算机视觉领域投稿指南:如何选择适合你的顶刊顶会(附最新审稿周期与费用)
计算机视觉领域投稿策略:从期刊会议选择到高效发表的全流程指南 在计算机视觉领域,研究成果的发表渠道选择往往比研究本身更让人头疼。记得我第一次投稿时,面对琳琅满目的期刊和会议列表,整整两周都在纠结该把论文投向哪里——是追…...
Zephyr RTOS 线程实战:从信号量到消息队列,手把手教你搞定多任务通信
Zephyr RTOS线程通信实战:信号量与消息队列的深度应用指南 在嵌入式开发领域,多任务间的有效通信是构建可靠系统的关键所在。想象这样一个场景:你的物联网设备需要同时处理传感器数据采集、实时数据处理、无线通信传输等多个任务,…...
本科生必看!全学科适配AI论文神器——千笔·专业降AI率智能体
论文写作,是每个本科生绕不开的挑战。选题难、框架乱、查重高、格式错……这些问题是否让你焦头烂额?别再独自挣扎,千笔AI——全学科适配的智能论文助手,正在为无数学生带来高效、专业的写作体验。千笔AI(官网直达入口) ÿ…...
C语言中结构体指针如何用 -> 取子数据及链表应用示例
在C语言当中,指针箭头“->”看起来是简单的,然而,好多人在学到链表之际,会被它难住。此符号从本质上来说,那是从一个结构体指针里把内部数据取出的快捷途径,要理解它呀,得先弄明白变量、指针…...
施密特触发器除了整形还能干啥?聊聊它在Arduino按键消抖和信号调理里的妙用
施密特触发器在Arduino中的高阶应用:从按键消抖到信号调理的实战指南 当你在调试Arduino项目时,是否遇到过按键响应不稳定、传感器读数跳变的问题?这些看似简单的硬件问题,往往会让开发者花费大量时间在软件滤波上。实际上&#x…...
