不知道大家怎么样的状况,个人目前状态是,迷之纠结
跟着 https://www.jianshu.com/p/a967014dbe6e 这篇博客表露心声,手动+1比心
同感:
我是实习期,实习还有3个月就满一年了,早早出来,写代码却时常卡壳,这个就很捉急了,占了时间的先机,却进步缓慢;有时候想把自己脑子撬开看看怎的了,咋就打结了呐,能力也是一直没提升。
总结问题有以下几点:
- 思维不够灵活
- 知识面狭窄
- 遇到不熟悉的代码或者业务就立马懵了(功力不扎实)
- 不够理解js代码的灵活应用(羡慕那些分分钟写脚本的大佬)
目标:
一周练会10~15个,先做个短期测试,其他陌生知识也抽空学习扩宽知识面;
遂开始锻炼我的思维,练习算法能不能改善呐拭目以待吧(因为目前我也不知道~~~(>_<)~~~)
都是简单的开始,复杂的咱也写不来,试着理解这些并毫无参照的白纸写出来,做到学进去:
算法1:反转一个整数或字符串 支持负数了
注意:如果数值小数位数超过6位,就会转换为科学计数法,整数的多于21位也会转为科学计数法
2019 20:11:04
输入为数字
方法1:
const reverseInteger = function (number) {
var str = String(number) //转换为字符串处理
// if(str.length>9) return 0 //无符号到亿 有符号到---负千亿
if(str.charAt(0) == "-"){ //charAt()方法可返回指定位置的(顺序同数组下标)字符
var str_r = String(number).substr(1,str.length) //str_r=负号后的字符
return parseInt("-"+str.split("").reverse().join(""))
}
return parseInt(str.split("").reverse().join(""))
}
reverseInteger(-123)
作者:zz77zz
链接:https://www.jianshu.com/p/a967014dbe6e
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
假设我们的环境只能存储得下 32 位的有符号整数,
则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。-2147483648
push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。
方法2:未使用reverse()方法
var reverse = function(x) {
var resultArr = [];
var intToStr = x.toString();
for(var i = intToStr.length-1;i > 0;i--){
resultArr.push(intToStr[i]);
}
if(intToStr[0] == "-"){
resultArr.unshift("-");
}
// 这部分处理32位存储
// resultArr.push(intToStr[0]);
// var resultNum = parseInt(resultArr.join(""));
// if(resultNum <= Math.pow(-2,31) || resultNum >= Math.pow(2,31) - 1 ){
// return 0;
// }
return resultNum;
};
reverse(-1250)
方案3: 方案一的升级版
var rev=function(x){
var str=parseInt(x.toString().split("").reverse().join("")) //转为字符,分割为数组,反转,
return x<0 ?-str:str
};
rev(-123456789)
作为字符串处理
1.字符串的完全翻转:
var str = "smile at life";
document.write(str.split("").reverse().join("")); //结果为efil ta elims
2.翻转字符串中单词顺序,但单词字母顺序不变:
function reverseStr(param){
var arr = param.split(" ");
var newArr = [];
for(i=0;i<arr.length;i++){
newArr[arr.length-i] = arr[i];
}
return newArr.join(" ");
}
reverseStr("smile at life"); //life at smile