FCC JS基础算法题(6):Truncate a string(截断字符串)
先看一下题目描述:
如果字符串的长度比指定的参数num
长,则把多余的部分用...
来表示。切记,插入到字符串尾部的三个点号也会计入字符串的长度。但是,如果指定的参数num
小于或等于3,则添加的三个点号不会计入字符串的长度。
简单的if嵌套就可以解决,最开始我是这么做的:
- function truncate(str, num) {
- // 请把你的代码写在这里
- var newStr = "";
- if(str.length > num){
- if(num <= 3){
- newStr = str.slice(0,num) + "...";
- }else{
- newStr = str.slice(0,num-3) + "...";
- }
- }else{
- newStr = str;
- }
- return newStr;
- }
- truncate("A-tisket a-tasket A green and yellow basket", 11);
写完可以达到效果,但是中间有些步骤可以去掉,比如这个变量。看了网上的方法之后,写出最终效果:
- function truncate(str, num) {
- // 请把你的代码写在这里
- if(num<str.length){
- if(num>=3){
- str= str.slice(0,num-3)+"...";
- }else{
- str= str.slice(0,num)+"...";
- }
- }
- return str;
- }
- truncate("A-tisket a-tasket A green and yellow basket", 11);
FCC JS基础算法题(6):Truncate a string(截断字符串)的更多相关文章
- FCC JS基础算法题(0):Reverse a String(翻转字符串)
题目描述: 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串.你的结果必须得是一个字符串. 算法: function reverseString(str) { ...
- FCC JS基础算法题(5):Return Largest Numbers in Arrays(找出多个数组中的最大数)
题目描述: 找出多个数组中的最大数右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组.提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组 ...
- FCC JS基础算法题(4):Title Case a Sentence(句中单词首字母大写)
题目描述: 确保字符串的每个单词首字母都大写,其余部分小写.像'the'和'of'这样的连接符同理. 算法: function titleCase(str) { // 转小写及分割成数组 var st ...
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...
- FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)
题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function fac ...
- FCC JS基础算法题(10):Falsy Bouncer(过滤数组假值)
题目描述: 删除数组中的所有假值.在JavaScript中,假值有false.null.0."".undefined 和 NaN. 使用filter方法,过滤掉生成的 Boolea ...
- FCC JS基础算法题(3):Find the Longest Word in a String (找出最长单词)
题目描述: 在句子中找出最长的单词,并返回它的长度.函数的返回值应该是一个数字. 基本思路,将字符串转换成数组,然后得出数组中单个元素的长度,对长度进行排序,返回最大的一个 代码: function ...
- FCC JS基础算法题(13):Caesars Cipher(凯撒密码)
题目描述: 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A ...
- FCC JS基础算法题(12):Where do I belong(数组排序并找出元素索引)
题目描述: 先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引.举例:where([1,2,3,4], 1.5) 应该返回 1.因为1.5插入到数组[1,2,3,4]后变成[1,1.5 ...
随机推荐
- Python基础之文件的初识函数
初识函数函数定义:定义一个事情或者功能. 等到需要的时候直接去用就好了了. 那么这里定义的东西就是一个函数即函数: 对代码块和功能的封装和定义1.1常用形式: def 函数名(): 函数体1.2 函数 ...
- Building Fire Stations ZOJ - 3820 (二分,树的直径)
大意: 给定树, 求两个点, 使得所有其他的点到两点的最短距离的最大值尽量小. 二分答案转为判定选两个点, 向外遍历$x$的距离是否能遍历完整棵树. 取直径两段距离$x$的位置bfs即可. #incl ...
- node模块之net模块——socket
当我们去面试的时候,常常会遇到这样一个问题:当用户在浏览器地址栏输入一段url发出资源请求后,到服务端返回数据呈现给用户的这个过程都发生了什么? 我们把进行通信的这两个端(这里指的是,浏览器和资源获取 ...
- mysql分组统计以及全部统计union all使用
select '全部' AS `organ_category`, COUNT(*) AS amount FROM `organ_new` WHERE `city_code` ='SZ0755' AND ...
- C# 3.0 / C# 3.5 自动属性
自动属性的好处 自动属性简化了我们在做 C# 开发的时候手写一堆私有成员 + 属性的编程方式,我们只需要使用如下方式声明一个属性,编译器就会自动生成所需的成员变量. 传统属性概念 属性的目的一是封装字 ...
- 一、Redis的学习
一.Redis的简介 Redis是一个高性能的key-value数据库,有点像一个hashmap. Redis与其他非关系型数据库做缓存有下面几个特点: 1.Redis支持数据的持久化,可以将内存中的 ...
- JavaScript 上万条数据 导出Excel文件(改装版)
最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var ...
- qq远程连接/windows远程桌面/teamviwer/xmanager/vnc的区别
软件 客户端运行平台 服务端运行平台 服务端是否需要同子网或公网IP 网络断开当前执行命令是否会中止 评价 QQ远程连接 windows windows 否 否 感觉用了一两分钟就动不了了 windo ...
- QPainter绘制特殊线条
参考资料: https://www.cnblogs.com/Jace-Lee/p/5946342.html 效果图: 代码: void WgtText::paintEvent(QPaintEvent ...
- python javar send
# -*- coding: utf-8 -*-import jpypeimport os.pathjarpath = os.path.join(os.path.abspath('.'), 'axja' ...