Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【面试真题】Javascript 手写编程题

【面试真题】Javascript 手写编程题

作者头像
前端修罗场
发布于 2024-02-02 07:03:44
发布于 2024-02-02 07:03:44
20400
代码可运行
举报
文章被收录于专栏:Web 技术Web 技术
运行总次数:0
代码可运行

今天,给大家分享几道面试中常见的 Javascript 编程题。

1、题目:编写一个函数,判断一个字符串是否为回文

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function isPalindrome(str) {  
  // 转换为小写并移除非字母字符  
  const cleanStr = str.toLowerCase().replace(/[^a-z]/g, '');  
  // 使用双指针法进行比较  
  let left = 0;  
  let right = cleanStr.length - 1;  
  while (left < right) {  
    if (cleanStr[left] !== cleanStr[right]) {  
      return false;  
    }  
    left++;  
    right--;  
  }  
  return true;  
}

2、题目:编写一个函数,计算一个数字的阶乘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function factorial(n) {  
  if (n === 0 || n === 1) {  
    return 1;  
  } else {  
    return n * factorial(n - 1);  
  }  
}

3、题目:编写一个函数,将一个二维数组转换为一维数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function flattenArray(arr) {  
  let result = [];  
  for (let i = 0; i < arr.length; i++) {  
    if (Array.isArray(arr[i])) {  
      result = result.concat(flattenArray(arr[i]));  
    } else {  
      result.push(arr[i]);  
    }  
  }  
  return result;  
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode刷题(二) JavaScript
通过递归实现:判断 list1 和 list2 那个链表的头结点的值更小,然后递归下去决定下一个添加到结果的节点,当两个链表中有为空时,递归结束。
赤蓝紫
2023/01/05
3390
经典JavaScript手写面试题和答案
肥晨
2023/06/26
1850
一天一大 leet(验证回文串)难度:简单 DAY-19
题目(难度:简单): 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 示例 1 入: "A man, a pl
前端小书童
2020/09/24
2670
一天一大 leet(验证回文串)难度:简单 DAY-19
【JavaScript 算法】双指针法:高效处理数组问题
双指针法通过同时维护两个指针来遍历数组,从而在特定条件下高效地解决问题。双指针法的基本思想是:
空白诗
2024/07/20
3650
【JavaScript 算法】双指针法:高效处理数组问题
【leetcode系列】125. 验证回文串
https://leetcode-cn.com/problems/valid-palindrome/description/
lucifer210
2019/08/16
7100
一文总结JavaScript手写面试题
该方法的参数是 Promise 实例数组, 然后其 then 注册的回调方法是数组中的某一个 Promise 的状态变为 fulfilled 的时候就执行. 因为 Promise 的状态只能改变一次, 那么我们只需要把 Promise.race 中产生的 Promise 对象的 resolve 方法, 注入到数组中的每一个 Promise 实例中的回调函数中即可.
helloworld1024
2022/11/07
4000
2022前端面试遇到的手写题总结
下面来看一道比较典型的问题,通过这个问题来对比几种异步编程方法:红灯 3s 亮一次,绿灯 1s 亮一次,黄灯 2s 亮一次;如何让三个灯不断交替重复亮灯?
helloworld1024
2022/09/22
7570
数组刷题<下>套路分析
一、双索引技术-对撞指针1.167. 两数之和 II - 输入有序数组2. 345. 反转字符串中的元音字母3.344. 反转字符串4.125. 验证回文串5.11. 盛最多水的容器二、双索引技术-滑动窗口1.209. 长度最小的子数组2.438. 找到字符串中所有字母异位词3.76. 最小覆盖子串
公众号guangcity
2019/09/20
6350
数组刷题<下>套路分析
如何优雅的使用javascript递归画一棵结构树
简单的说,递归就是函数自己调用自己,它作为一种算法在程序设计语言中广泛应用。其核心思想是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。一般来说,递归需要有边界条件、递归前进阶段和递归返回阶段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
徐小夕
2019/09/17
1.3K0
如何优雅的使用javascript递归画一棵结构树
前端面试高频20道手写题
该方法的参数是 Promise 实例数组, 然后其 then 注册的回调方法是数组中的某一个 Promise 的状态变为 fulfilled 的时候就执行. 因为 Promise 的状态只能改变一次, 那么我们只需要把 Promise.race 中产生的 Promise 对象的 resolve 方法, 注入到数组中的每一个 Promise 实例中的回调函数中即可.
helloworld1024
2022/08/02
3940
哈希法解决三数之和有点难...
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。
代码随想录
2021/06/16
7770
哈希法解决三数之和有点难...
JS算法探险之字符串
今天,我们讲一讲,JS中针对 String类型的相关算法的解题技巧和一些注意事项。
前端柒八九
2022/08/25
8210
手撕前端面试代码题大全
加入我们一起学习,天天进步 转载自:等不到你. https://blog.csdn.net/weixin_43758603/article/details/109895826 写在前面 最近我终于找到
coder_koala
2020/12/17
1.3K0
手撕前端面试代码题大全
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
人不走空
2024/02/21
1760
20道高频前端手写题(有答案)
类的继承在几年前是重点内容,有n种继承方式各有优劣,es6普及后越来越不重要,那么多种写法有点『回字有四样写法』的意思,如果还想深入理解的去看红宝书即可,我们目前只实现一种最理想的继承方式。
ccAllen23
2022/07/29
8300
美团前端手写面试题总结
该方法的参数是 Promise 实例数组, 然后其 then 注册的回调方法是数组中的某一个 Promise 的状态变为 fulfilled 的时候就执行. 因为 Promise 的状态只能改变一次, 那么我们只需要把 Promise.race 中产生的 Promise 对象的 resolve 方法, 注入到数组中的每一个 Promise 实例中的回调函数中即可.
helloworld1024
2022/10/18
1K0
算法之递归
也就是递归一般会有一个判断,这是递归算法的出口(1 处);还有一个返回这个函数的执行结果(2 处);这两点是实现递归的关键。如果没有出口,递归就会变成死循环,而如果没有函数自身内部调用就无法构成递归。
多云转晴
2020/03/11
7990
前端经常遇到的手写js题
(3)让函数的 this 指向这个对象,执行构造函数的代码(为这个新对象添加属性)
helloworld1024
2022/11/02
9010
js高频手写题总结
经典面试题:实现add(1)(2)(3)(4)=10; 、 add(1)(1,2,3)(2)=9;
helloworld1024
2022/09/24
9650
如何用JavaScript实现数组扁平化
🧐 什么是数组扁平化 将嵌套多层的数组“拉平”,变为一维数组。 🤔 为什么要数组扁平化 去除冗余,厚重和繁杂的装饰效果。 😎 如何进行数组扁平化 方法一:递归实现 思路就是通过循环递归的方式,一项一项的去遍历,如果每一项还是一个数组,那么就继续往下遍历,利用递归程序的方法,来实现数组每一项的连接 let arr=[1,[2,[3,4,5]]]; function flatten(arr){ let result=[]; for(let i=0;i<arr.length;i++){ if(Arr
henu_Newxc03
2022/05/05
6200
相关推荐
LeetCode刷题(二) JavaScript
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档