廖老师的js教程练习

1.不要使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数:

function string2int(s) {
  var arr = s.split('').map((x)=>{
  return +x
  })
  return arr.reduce(function(x,y){
    return x*10 + y
  })
}

执行+x即可将string强制转换成number类型

2.请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']

function normalize(arr) {
  return arr.map(v=>{
    return v.charAt('0').toUpperCase() +  v.slice(1).toLowerCase()
    });
  }
}
string的substring,slice,substr方法总是记不清楚,也很容易跟array的split,slice方法弄混掉
总结一下;

2.1string的字符串截取有slice(),substr(),substring()

2.1.1slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

stringObject.slice(start,end)
参数
描述
start      
要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end

紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

2.1.2substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

stringObject.substr(start,length)
参数 描述
start      

要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。


紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

2.1.2substring() 方法用于提取字符串中介于两个指定下标之间的字符。

stringObject.substring(start,stop)
参数 描述
start      
必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop

可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

如果省略该参数,那么返回的子串会一直到字符串的结尾。

2.2Array的字符串截取有slice(),splice()

2.2.1slice() 方法可从已有的数组中返回选定的元素

arrayObject.slice(start,end)

同string的slice方法一样

2.2.2splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。(该方法会改变原始数组

arrayObject.splice(index,howmany,item1,.....,itemX)

参数 描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
3.请尝试用filter()筛选出素数:
function get_primes(arr) {
  return arr.filter(function(ele){
    if((ele >1 && ele%2 !==0)){
    for (var i =2; i<ele;i++){
        if(ele % i ===0) {
          return false
        }
    }
  return true
}else if(ele ===2) {
  return true
  } 
  })
}


猜你喜欢

转载自blog.csdn.net/weixin_38049458/article/details/80689649