JavaScript数组去重和字符串的常用方法

数组选择排序

        基本思想

        首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(交换位置)再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 重复第二步,直到所有元素均排序完毕。

        例子

        把数组arr[67,56,86,13,95,0]中的元素由小到大装在arr数组中。

        用for双重循环,外层循环数是arr.length-1次,内层循环是从外层的数加1开始的,在内层循环的循环体内判断值的大小。

//由小到大排序
 var arr = [67, 56, 86, 13, 95, 0]
 var n = arr.length
 for (var i = 0; i < n - 1; i++) {
      var minIndex = i //最小数下标,假设最小数是第一个
       for (var j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
               minIndex = j
            }
        }
        var temp = arr[i]
        arr[i] = arr[minIndex]
        arr[minIndex] = temp
  }
  console.log(arr)

数组去重

        去掉数组中重复的元素。

方法一

        ​ 实现思想:利用indexOf或includes实现

                ​ 1、定义一个空数组,去存储去重后元素

                ​ 2、遍历原数组

                ​ 3.判断新数组中是否有原数组当前元素,如果没有,存储到新数组中

var arr = [9, 2, 5, 3, 1, 2, 9, 4, 3, 7]
console.log(arr)
var n = arr.length
var arr1 = []
//一、for遍历
//for (var i = 0; i < n; i++) {
    //方式一
   // if(arr1.indexOf(arr[i])==-1){
   //     arr1.push(arr[i])
   // }
   //方式二
  // if (!arr1.includes(arr[i])) {
    //    arr1.push(arr[i])
     //}
//}

//二、forEach遍历
 arr.forEach(function (item) {
     if (arr1.indexOf(item) == -1) {
         arr1.push(item)
     }
})
console.log(arr1)

结果

方法二

        实现思想:1、利用双重for循环+splice实现

                        ​ 2、外层循环遍历数组所有元素

                        ​ 3、内层循环一次判断后面元素是否与外层循环元素相同,如果相同,就截取

var arr = [9,9,9,5,3,1,2,9,4,3,7]
console.log(arr)
var n=arr.length
for(var i=0;i<n;i++){
   for(var j=i+1;j<n;j++){
       if(arr[i]==arr[j]){
            arr.splice(j,1)
             j--
       }
    }
 }
 console.log(arr)

 

字符串   

 基本知识        

、创建字符串

​         var 字符串名='内容' 字面量方式

​         var 字符串名=new String('内容') 构造函数方式

//字面量方式
var str=''  //空字符串
var str1='string is type'
//构造函数方式
var str2=new String('string is type')

二、字符串是由一系列字符构成的,每个字符对应 自己下标和数组类似,从0开始

三、访问字符串字符

        ​ 字符名[下标]

​         不能赋值 字符名[下标]=‘内容’

四、length字符串长度

        ​ 语法:字符名.length

五、字符串遍历

        for遍历

var str='hello world!'
for (var i=0;i<str.length;i++){
    console.log(str[i])
}

 2:代表有两个l

 

六、字符串

        ​ 注意:1、当使用点语句调用属性和方法是,自动转为复杂数据类型,使用完又转为基本数据类型,这就是包装类型

        ​ 基本数据类型 ---> 复杂数据类型

​               string        --->       String

​                         str.length

常用方法

1、charAt

        ​ 作用:根据下标返回字符。

var str='this is first code'
//输出字符串中的第十位字符
var inStr=str.charAt(9)//字符串的下标是从0开始的
console.log(inStr)//在浏览器的控制台输出first中i字母

2.indexOf

        ​ 作用:返回字符在字符串中的下标,从前面往后找,如果没有就返回-1。

var str='student school'
var num=str.indexOf('m')
console.log(num)//在控制台输出-1
var num1=str.indexOf('u')
console.log(num1)//在控制台输出u在字符串中的下标2

3、lastIndexOf

        ​ 作用:也是找字符的下标,从后面往前找。如果元素中有多个系统的,那只找离最后最近的那一个元素。

var str = 'student school'
var num=str.lastIndexOf('o')
console.log(num)//在控制台输出school中第二o的下标12

 4、substring (slice)

        ​ 作用:截取字符串,有两个参数(下标1,下标2),但截取的内容不包括下标2的内容。

var str='study'
var newStr=str.substring(1,4)
console.log(newStr)//在控制台输出tud

 5、substr (splice)

        ​ 作用:截取字符串,有两个参数(下标,元素个数)。

var str='abcdefghijklmnopqrstuvwxyz'
var newStr=str.substr(4,15)
console.log(newStr)//在控制台输出efghijklmnopqrs

6、replace

        ​ 作用:替换原有的字符串。

        ​ 语法:replace(原字符串,新字符串)

var str='aabbccDDeeffgg'
var newStr=str.replace('DD','dd')
console.log(newStr)//控制台输出显示为:aabbccddeeffgg

7、split

        ​ 作用:分割字符串,将分割之后的字符串返回到新字符串中。

                ​ 可以字符串转换成数组split(''),引号里面不能有任何内容。

        ​ 语法:split('分割字符')

//字符串转换成数组
var str='abcdefg'
var newStr=str.split('')//引号里面不能有任何内容,连空格也不能有
console.log(newStr)//控制台输出结果为:['a', 'b', 'c', 'd', 'e', 'f', 'g']
//将空格换成逗号
var str1='aa bb cc dd ee'
var newStr1=str1.split(' ')
console.log(newStr1)//控制台输出结果为:['aa', 'bb', 'cc', 'dd', 'ee']

8、concat

        ​ 作用:将两个字符串进行拼接,并返回一个新的字符串。

        ​ 语法:字符串名.concat('另一个字符串的内容')

var str='世界你好!'
var newStr=str.concat('今天又是开心的一天!!')
console.log(newStr)//在控制台会输出成:世界你好!今天又是开心的一天!!

9、trim

        ​ 作用:去掉字符串中首尾两端的空格,会返回一个新的字符串。

var str=' a dw jaw '
var newStr=str.trim()
console.log(newStr)//结果:a dw jaw

10、startsWith

        ​ 作用:判断以什么字符串开始,是就返回true,否则就返回false。

var str='string cool ending'
var ne=str.startsWith('string')
console.log(ne)//控制台输出结果为:true
var n=str.startsWith('ring')
console.log(n)//控制台输出结果为:false

11、endsWith

        ​ 作用:判断是否以字符串结束,是就返回true,否则就返回false。

var str='string cool ending'
var ne=str.endsWith('ending')
console.log(ne)//控制台输出结果为:true
var n=str.endsWith('end')
console.log(n)//控制台输出结果为:false

12、toLowerCase

        ​ 作用:将字符串中的大写转换成小写

var str='abcdEFG'
var newStr=str.toLowerCase()
console.log(newStr)//控制台输出结果为:abcdefg

13、toUpperCase

        ​ 作用:将字符串中的小写转换成大写

var str = 'aBcdE'
var newStr=str.toUpperCase()
console.log(newStr)//控制台输出结果为:ABCDE

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...