JavaScript的一些编程题分享

news2024/12/24 19:27:26

将字符串abc-def-ghi转换为驼峰格式

这里我们的思路是利用字符串方法和正则表达式

const str = 'abc-def-ghi';
   const camelCaseStr = str.replace(/[-_][^-_]/g, match => match.charAt(1).toUpperCase());
   console.log(camelCaseStr); // 'abcDefGhi'

这里使用了 replace 方法,它接受两个参数:第一个参数是要匹配的正则表达式,第二个参数是替换成什么。具体来说,正则表达式 /[-_][^-_]/g 匹配所有连字符或下划线后面紧跟着一个非连字符或下划线的位置。然后,回调函数的作用是将匹配到的字符中第二个字符转化为大写字母,并返回这个新字符串来替换原来的匹配。最终结果为 'abcDefGhi',即驼峰格式的字符串。

找出数组 arr [1, 2, 4, 4, 3, 3, 1, 5, 3]中重复出现过的元素(不用考虑返回顺序)

const arr = [1, 2, 4, 4, 3, 3, 1, 5, 3];  
	const result =new Set(arr.filter((item, index) => {  
	  return arr.indexOf(item) !== index;  
	})) 

这里我们使用过滤器的方法,它需要传入俩个值,其中,第一个参数 item 表示当前正在遍历的元素,第二个参数 index 表示当前元素在数组中的索引位置。这个回调函数的作用是判断当前元素是否在数组中重复出现,如果是则返回 true,否则返回 false。这样就能找到重复的元素。

但是这样我们找到的新的数组中有新的重复,我们在使用Set去掉重复即可。

数组去重,去掉arr = [1,1,8,8,12,12,15,15,16,16];数组中重复的元素 

var arr = [1,1,8,8,12,12,15,15,16,16];
      function arr1(arr){
        return Array.from(new Set(arr))
      }
      console.log(arr1(arr));

函数 arr1 中首先使用 JavaScript 中的 Set 对象对输入数组进行去重操作。Set 对象是一组不重复的值的集合,它可以用来快速地从一个数组中筛选出不重复的元素。这里使用 new Set(arr) 创建了一个 Set 对象,将输入数组 arr 作为参数传入。

然后使用 Array.from() 方法将 Set 对象转化为一个新的数组,并将其作为函数的返回值。Array.from() 方法可以将一个类似数组或可迭代对象转换为一个新的真正的数组实例。

写一个方法,清除字符串中所有的空格。例如:’  a  bc  ’,需要输出:’abc’。

var str='  a  bc  '
     function space(str){
       return str.replace(/\s/g,'')
     }
     console.log(space(str));

 正则表达式全局匹配将空格替换成空字符串

从字符串中移除HTML标签

function html_tags(str){
       return str.replace(/<\/?[^>]+(>|$)/g,'')
     }
     console.log(html_tags('<p><span>JAVASCRIPT</span></p>'));

这道题考的就是对正则表达式的理解

< 和 > 分别匹配开头和结尾尖括号。

\/? 匹配一个可选的斜杠,用于处理开始标签和结束标签之间的差异。

[^>]+ 匹配一个或多个非尖括号的字符,即标签名称和属性。

(>|$) 匹配一个尖括号和一个可选的大括号,用于处理嵌套标签的情况。

g 表示全局匹配模式,即在整个字符串中查找所有匹配项,而不是只查找第一个匹配项。

请编写代码,计算时间戳 1630257661126 与 1638257589478 中间间隔了多少天?

const timestamp1 = 1630257661126;
const timestamp2 = 1638257589478;

const dayInMillis = 24 * 60 * 60 * 1000; // 一天的毫秒数
const daysDiff = Math.abs(Math.floor((timestamp2 - timestamp1) / dayInMillis)); // 计算两个时间戳之间相差的天数

console.log(daysDiff);

 具体做法是,首先定义一个常量 dayInMillis 表示一天的毫秒数。然后通过减法运算得到两个时间戳之间的毫秒数差值,并使用 Math.floor() 方法向下取整得到相差的天数,最终使用 Math.abs() 方法取绝对值保证结果为正数。

注意,这里使用了 Math.floor() 方法是因为我们只需要考虑两个时间戳之间的完整天数,而不需要考虑小时、分钟等精确到秒以下的时间差。如果需要更加精确地计算日期差值,可以使用第三方库 moment.js 或者 day.js。

把下列JSON显示到页面上:

let obj= {
      "key" : "我爱你",
      "key1" : "一生一世"
  }
显示效果:
  <div>
    <div>我说:我爱你</div>
    <div>你说:一生一世一</div>
   </div> 

let obj= {
      "key" : "我爱你",
      "key1" : "一生一世"
  }
  let html=`<div>
<div>我说:${obj.key}</div>
<div>你说:${obj.key1}</div>
</div> `
document.write(html)

 ES6 模板字符串语法定义了一个名为 html 的字符串模板

最后,使用 document.write() 方法将模板字符串 html 输出到文档中

使用JavaScript实现斐波那契序列。斐波那契序列:0、1、1、2、3、5、8、13,这个数列的特点是从第3项开始,每一项都等于前两项之和。

使用递归方式实现斐波那契数列:

function fibonacci(n) {
  if (n <= 1) {
    return n;
  }
  return fibonacci(n - 1) + fibonacci(n - 2);
}

这里定义了一个名为 fibonacci 的函数,接受一个整数参数 n,表示要计算斐波那契数列的第 n 项。如果 n<=1,则直接返回 n;否则,通过递归调用自身来计算前两项之和,并返回结果。

使用循环方式实现斐波那契数列:

function fibonacci(n) {
  let prev = 0;
  let curr = 1;
  for (let i = 2; i <= n; i++) {
    const next = prev + curr;
    prev = curr;
    curr = next;
  }
  return curr;
}

在这个实现中,我们使用两个变量 prevcurr 来分别保存斐波那契数列的前两项。然后使用一个循环,从第三项开始一直计算到第 n 项,并依次更新 prevcurr 的值。最后返回当前项的值即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

haproxy

haproxy haproxy一&#xff1a;常见的Web集群调度器1.软件2.硬件3.LVS &#xff0c;Nginx &#xff0c;Haproxy 的区别&#xff1a; 二&#xff1a;Haproxy应用分析1.HAProxy的主要特性有&#xff1a;2.HAProxy负载均衡策略非常多&#xff0c;常见的有如下8种&#xff1a; 三&a…

MySQL8.0数据库开窗函数

简介 数据库开窗函数是一种在SQL中使用的函数&#xff0c;它可以用来对结果集中的数据进行分组和排序&#xff0c;以便更好地分析和处理数据。开窗函数与聚合函数不同&#xff0c;它不会将多行数据聚合成一行&#xff0c;而是保留每一行数据&#xff0c;并对其进行分组和排序。…

Linux中/dev/random和/dev/urandom的作用

1./dev/random和/dev/urandom介绍 在Linux环境中&#xff0c;我们会用到/dev/random和/dev/urandom&#xff0c;今天为大家讲讲/dev/random和/dev/urandom的作用以及使用场景。 1.1./dev/random介绍 /dev/random是一个特殊的字符设备文件&#xff0c;用于生成“高质量”的随…

Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.1 定义纸牌的花色和点数

总项目目标&#xff1a;用面向过程思想设计一个简单的纸牌游戏程序&#xff0c;称为"Higher or Lower"&#xff08;高还是低&#xff09;。游戏中&#xff0c;玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性&#xff0c;玩家可以得到或失去相应的积…

Unity UGUI1——基础组件概述

一、UGUI 介绍 ​ UGUI 是 Unity 引擎内自带的 UI 系统&#xff0c;官方称之为&#xff1a;Unity UI ​ 是目前 Unity 商业游戏开发中使用最广泛的 UI 系统开发解决方案 ​ 它是基于 Unity 游戏对象的 UI 系统&#xff0c;只能用来做游戏 UI 功能 ​ 不能用于开发 Unity 编…

【MarkDown】CSDN Markdown之Git图gitGraph详解

Git图 Git图是对不同分支上的Git提交和Git操作&#xff08;命令&#xff09;的图形化表示。 这种类型的图特别适合开发人员和DevOps团队分享他们的Git分支策略。例如&#xff0c;它可以更容易地可视化git流的工作方式。 Mermaid可以呈现Git图,但是只有v10.2.3 才支持。 代码…

kubernets 笔记

kubernets 笔记 kubernets 安装 1. 环境准备 硬件要求 内存&#xff1a;2GBCPU&#xff1a;2 核硬盘&#xff1a;30GB 本次环境说明 操作系统&#xff1a;CentOS 7.9内核版本&#xff1a;3.10.0-1160.76.1.el7.x86_64k8s-m&#xff1a;192.168.222.3k8s-s01&#xff1a;192.…

安装Apache、MySQL、PHP、论坛实操

文章目录 一、安装Apache1、准备阶段2、开始安装3、浏览器访问验证 二、部署MySQL三、部署php四、部署BBS论坛 一、安装Apache 1、准备阶段 &#xff08;1&#xff09;准备源码包 httpd-2.4.29.tar.gz apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz cd /opt tar xf apr-1.6.2.tar…

【Windows】创建Windows远程桌面快捷方式

【Windows】创建Windows远程桌面快捷方式 1、背景2、操作 1、背景 windows系统自带了远程连接工具&#xff0c;可以实现局域网内的远程控制&#xff0c;参考&#xff1a; 【Windows】局域网内远程桌面控制 https://blog.csdn.net/jn10010537/article/details/130926888 但是w…

【Leetcode -404.左子叶之和 -543.二叉树的直径】

Leetcode Leetcode -404.左子叶之和Leetcode -543.二叉树的直径 Leetcode -404.左子叶之和 题目&#xff1a;给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3, 9, 20, null, null, 15, 7] 输出 : 24 解释 : 在这个二叉树中&…

vue三部曲

vue初入 简介 ​ vue生于2014年 Vue等框架与jQuery的区别 ​ jQuery是基于操作dom的库 ​ Vue框架是以数据驱动和组件化开发为核心 留坑、引包、实例化、插值表达式{{}} ​ vue第一个简单案例练习图。 引包 ​ 使用cnpm install vue2下载vue2&#xff08;version下载指…

ansible的剧本

一、playbooks 概述以及实例操作 1、playbooks 的组成 playbooks 本身由以下各部分组成 &#xff08;1&#xff09;Tasks&#xff1a;任务&#xff0c;即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 &#xff08;2&#xff09;Variables&#xff1…

数据挖掘工程师岗位的工作职责

数据挖掘工程师岗位的工作职责1 职责&#xff1a; 1.负责数据分析,数据挖掘相关的算法、应用的设计与开发; 2.负责公司产品各阶段数据的整理、分析、挖掘及提交数据报告&#xff0c;重点对车辆行为数据进行分析和挖掘&#xff0c;利用数据分析结论推动业务产品的优化; 3.对海量…

python---列表和元组(3)

列表元素的遍历 遍历往往搭配循环 for循环进行遍历 for循环搭配下标的形式 这个可以修改列表中的数值 上述两个代码的区别 通过下标的方式进行赋值才会修改自身 使用while循环遍历 元素的插入操作 使用append往列表末尾来新增元素 使用insert进行插入 列表的查找##…

利用AHB-Lite总线实现ARM Cortex-M0基础的SoC系统;如何设计一个SoC系统;AHB-Lite;ARM Cortex-M0;SoC;

利用AHB-Lite总线实现ARM Cortex-M0基础的SoC系统&#xff1b;如何设计一个SoC系统 一、SoC系统下的软硬件分工Hardware only 和System on Chip的区别例子1&#xff1a;计算时间差值例子2&#xff1a;想实现功能的切换例子3&#xff1a;LED显示 二、SoC系统1. AHB-Lite总线 与 …

chatgpt赋能python:Python如何隐藏输出

Python如何隐藏输出 如果你是一个Python程序员&#xff0c;你可能会遇到需要隐藏输出的情况。这可能是因为你的输出包含敏感信息&#xff0c;或者你只是想使你的输出更加整洁&#xff0c;避免不必要的干扰。在这篇文章中&#xff0c;我们将探讨一些方法来隐藏Python中的输出。…

微擎PHP文件goto解密源码工具

&#x1f389; 有需要的朋友记得关赞评&#xff0c;文章底部来交流&#xff01;&#xff01;&#xff01; &#x1f389; ✨ 源码介绍 1、php 版本需要大于 7 2、需要解密的文件放到 decodeFile 下&#xff0c;解密至 complete 下 3、解密的可以是多个文件&#xff0c;不能放…

操作系统-I/O管理-I/O管理概述

目录 一、I/O设备的分类 1.1分类 1.1.1特性分类 1.1.2按传输速率分类 1.1.3按信息交换单位分类 二、I/O控制器 三、I/O控制方式 3.1程序直接控制方式 3.1中断驱动方式 3.3DMA方式 3.4通道控制方式 四、I/O软件层次结构 五、输入输出管理 5.1输入输出应用程序接口 …

UE4的AI行为树基础知识

1.前言 在制作游戏时&#xff0c;会制作敌人、怪物、NPC等不被玩家所操作的对象&#xff0c;那么制作这些对象&#xff0c;就需要通过使用AI行为树来为他们编写各自的一些行为逻辑&#xff0c;比如敌人会寻找主角并攻击、怪物会在自己的领域巡逻等等。 2.组件说明 NavMeshBou…

国产麒麟服务器等保二级 配置规范(二)

一、redis的配置规范 1.1 禁止以root账号运行redis服务 以下Linux 命令操作创建了一个无 home 目录权限&#xff0c;且无法登录的普通账号redis。 #useradd -M -s /sbin/nologin redis 修改服务允许和配置文件权限&#xff1a; #setsid sudo -u redis /usr/bin/redis-serer /e…