已被阅读 761 次 | 文章分类:javascript | 2022-02-13 20:45
在牛客网上看了下华为机试题,有入门、简单、中等、较难、困难等区分;其实这个区分依据也很简单,就是覆盖基础知识点的数量;难度低的可能只有一个知识点;随着难度上升,基础知识点的数量越多,综合考察就有难度了;所以如果有几个知识点缺失,可能就无法做出最后的结果;记录一下自己的笔记吧
1 考题描述
以下是考点描述;
// 描述
// 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。
// 输入描述:
// 输入一行,代表要计算的字符串,非空,长度小于5000。
// 输出描述:
// 输出一个整数,表示输入字符串最后一个单词的长度。
// 示例1
// 输入:
// hello nowcoder
// 输出:
// 8
// 说明:
// 最后一个单词为nowcoder,长度为8
2 考点解析
看到题目很明显是对字符串及数组的考察;
第一考察字符串转数组的方法 split()方法
第二考察获取最后一个元素的长度;考察字符串的length属性
3 介绍两种方式
两种方式区别在获取最后一个元素的时候不同
第一种;
function calLenth(str){
let strArr=str.split(' ');
let lastWord=strArr[strArr.length-1]
return lastWord.length
}
console.log(calLenth("hello nowcoder"));
第二种:使用slice方法获取最后一个元素
function calLenth(str){
return str.split(' ').slice(-1).join().length
}
console.log(calLenth("hello nowcoder"));
slice(-1)代表选取最后一个数组元素,并返回一个新数组;具体用法可访问MDN官网slice()
所以如果不会使用slice从末尾选取元素;用第一种也是可以的;测试地址:最后一个字符长度
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号