美文网首页
js学习note9 取字符串中间值and找出数组重复出现的值

js学习note9 取字符串中间值and找出数组重复出现的值

作者: 皮皮M | 来源:发表于2018-05-31 09:49 被阅读0次

    一早遇到球迷司机 ,道路施工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题

    相关文章

      网友评论

          本文标题:js学习note9 取字符串中间值and找出数组重复出现的值

          本文链接:https://www.haomeiwen.com/subject/ngwfsftx.html