一早遇到球迷司机 ,道路施工3位好友绕路出行的提醒,周四愉快耶٩(๑❛ᴗ❛๑)۶
球迷司机
第1题:找出一个字符串的中间值,比如 '123' 返回2,'1234' 返回23。
let str = '1234'
function middle (str) {
let newStr = ''
num = str.length % 2
// 判断是否能整除
if (num == 0) {
// ok的话截取中间2位,substring(start, end),有头无尾
newStr = str.substring((str.length/2)-1, (str.length/2)+1)
} else {
// 不ok的话截取中间1位,charAt(index)٩(๑❛ᴗ❛๑)۶٩(๑❛ᴗ❛๑)۶
newStr = str.substring(str.length/2).charAt(0)
}
console.log(newStr)
}
middle (str)
js中substring()、substr()、slice()的区别(上栗子):
1、stringObject.substring(start,stop),从 start 下标开始到stop(不包含stop)结束,start和stop都是非负整数,不接受负的参数。
注意:如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
2、stringObject.substr(start,length),从 start 下标开始的指定数目的字符,length必须是数值,start可接受负的参数。
3、stringObject.slice(start,end),从 start 下标开始到end(不包括 end)结束,接受负的参数。end如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
上栗子
参数出现负数
我最胖~
第2题:写一个函数 找出数组重复出现的值,比如[1, 2, 4, 4, 3, 3, 1, 5, 3] 返回[1, 3, 4]。
var arr = [1,2,4,4,3,3,1,5,3]
function repeatValue (arr) {
let newArr = []
for (let i=0; i<arr.length; i++) {
// → [ 1, 4, 4, 3, 3, 1, 3 ]
// → [1, 4, 3]
if (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i]) && newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i])
}
}
console.log(newArr.sort()) // 排序 → [1, 3, 4]
}
repeatValue(arr)
indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置(从前到后),
lastIndexOf()方法可返回一个指定的字符串值最后出现的位置(从后到前)。
indexOf,lastIndexOf
2018/05/29题
网友评论