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 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。 |
stringObject.substring(start,stop)
参数 | 描述 |
start |
必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
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
}
})
}