15 JS字符串案例

70 阅读1分钟

1.统计 字符串中 每个字符出现的次数(以对象的形式存储)

var str = 'aaabbbccddeeee'
var obj = {}
for(var i = 0; i < str.length; i++){     
      // if(obj[str[i]] === undefined){ //obj[str[i]] === undefined 的时候  做某些事
      if(!obj[str[i]]){ /**
         * 因为undefined转换为布尔值是false,所以如果 obj[str[i]]的值就是undefined的时候,那么布尔值就是false,加一个 ! 代表取反,所以实际得到的布尔值是 true
         *  obj[str[i]] 要么是undefined 要么是从1开始的数字
         *  所以除了是 undefined 之外的其他情况,他的布尔值都是 true
         *  加一个 ! 代表取反,所以实际得到的布尔值为 false
        */
        obj[str[i]] = 1
      }else{
        obj[str[i]]++
      }
    }
    console.log(obj)

2.反转字符串

var str = 'abcdef'
// var arr = str.split('')//1.将字符串转换为数组
//var newArr = arr.reverse()//2.将数组反转
// str = newArr.join('')//3.将反转后的数组重新合并为一个字符串
var str3 = str.split('').reverse().join('')
console.log(str3)

3.查询字符串

假设 str 存储的是后端反馈给我们的一个信息,var str = 'username=靓仔&age=18&qq=88888888'

  • 需求1:将'username=靓仔&age=18&qq=88888888'更改为{ username: '靓仔', age: 18, qq: 88888888 }
var str = 'username=靓仔&age=18&qq=88888888'
var obj = {}
var arr = str.split('&')
arr.forEach(function(item){
  var itemInfo = item.split('=') // 一个数组['key','value']
  obj[itemInfo[0]] = itemInfo[1] // 向对象内存储
})
console.log(obj)
  • 需求2:将对象转换为 字符串
var obj = {
           username: '靓仔',
           age: 18,
           qq: 88888888
          }
for(var k in obj){
  newStr += k + '=' + obj[k] + '&'
}
newStr = newStr.slice(0,-1)
console.log(newStr)