资讯专栏INFORMATION COLUMN

js基础 数组与字符串

liaosilzu2007 / 1904人阅读

摘要:最近在梳理的基础,首先从数组和字符串开始。如果超出有效范围与字符串长度减一的索引值返回空字符串返回对象内第一次出现子字符串位置。将字符串以参数分割为数组方法返回一个字符串,该字符串中的字母被转换成小写。

最近在梳理js的基础,首先从数组和字符串开始。
string 常用方法:

1.substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结束位置的字符,只写一个参数表示从开始位置截取到最后
str.substring(1)  //得到bcdefg    str.substring(1,3)  //得到bc

输入负值时将负值变为0,哪个较小作为开始位置

str.substing(-1,1)  =>str.substring(0,1) //a
str.substring(1,-2) =>str.substring(0,1) //a```

    2.slice(start开始位置索引,end结束位置索引) 基本和substring相似,区别在参数为负数。
    str.slice(1)   //bcdefg           str.substring(1,3) // bc

    输入负值时 值与字符串的长度相加

    str.slice(-1)      =>str.slice(6)    //g
    str.slice(1,-2) =>str.slice(1,5)  //bcde
    str.slice(-2,-1)=>str.slice(5,6)  //f
    值绝对值大于字符串的长度时变为 0

    str.slice(-22) =>str.substring(0)  //abcdefg

    第二个参数绝对值大于字符串的长度时,返回""```

3.substr(start开始位置索引,end需要返回的字符个数)
str.substr(1)  //bcdefg            str.substr(1,1)  //b

输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0

str.substr(-1) =>str.substr(6)//g                 

str.substr(-2,-3)  // ""```

    4.charAt(index) 方法返回指定索引位置处的字符。如果超出有效范围(0与字符串长度减一)的索引值返回空字符串.
    str.charAt(2)  // c```

5.index(string)  返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。

    ```var str="abcdefga"  str.indexOf("a")  // 0   str.indexOf("h") //-1```
6.lastIndexOf(string)  倒叙查找

 返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。   
    ```var str="abcdefga"     str.lastIndexOf("a") // 7```

7.split(str)  将字符串以参数分割为数组

   ```var str="abcadeafg"     str.split("a") //["", "bc", "de", "fg"]```

8. toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。


9. toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。

10.match() – 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配 
11.search  方法返回与正则表达式查找内容匹配的第一个字符串的位置。
12.replace 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配

  

数组常用的方法

1. push      添加到最后        返回添加后的数组

2. unshift   添加到最前面      返回添加后的数组 

3. shift     删除(从前面)    返回处理后的数组

4. pop       删除最后一项      返回处理后的数组

5. reverse   数组翻转          返回处理后的数组

6. join      数组转化为字符串  

   var arr=[1,2,3,4,5],  str=arr.join("--"); 

   console.log(str);  // 1--2--3--4--5  以join内的参数切割数组

   console.log(arr);  // [1,2,3,4,5]    原数组未变
7. slice(start,end)     截取数组 从start(开始) 到end(结束 不包含)
                        
                        返回新数组,原数组不变
console.log(new);   // [3,4]

console.log(arr);   // [1,2,3,4,5]```                      

    8. concat   数组合并


    9. splice(开始下标,个数,ele1,ele2....) 剪接数组 

       (1).一个参数  从参数位置截取 填写负数类似上面str slice  返回截好的数组 原数组变化
 var arr=[1,2,3,4,5];

 console.log(arr.splice(1));   // [2,3,4,5]

 console.log(arr);             // [1]

 console.lgo(arr.splice(-1))   // [5]

       (2).二个参数  截取 (开始位置,个数) 返回截好的数组 原数组变化

 var arr=[1,2,3,4,5];

 console.log(arr.splice(1,3)); //  [2,3,4]

 console.log(arr)              //  [1,5]

 arr.splice(0,1) =>arr.shift()

 arr.splcie(arr.length-1,1)  =>arr.pop()

       (3).添加  原数组增加

 var arr=[1,2,3,4,5];

 console.log(arr.splice(1,0,13)); // []

 console.log(arr);                // [1,13,2,3,4,5]

       (4).替换 
       
 var arr=[1,2,3,4,5];

 console.log(arr.splice(1,2,"a","b")) // [2,3]

 console.log(arr);                // [1,"a","b",4,5]


 arr.splice(0,0,1) =>arr.unshift(1);

 arr.splice(arr.length,0,1) => arr.push(1)

    10. arr.forEach(item,index,array){}   遍历,循环 类似jquery的each

其中的item参数是数组中的内容,index为其索引,array表示数组本身

var arr=[1,2,3,4,5];
arr.forEach(function(item,index,array){

})

遇到嵌套跳出循环出现问题,暂时没有解决;

    11. map方法    映射 用法和forEach类似

var men=[
    {"name":1,"age":12},
    {"name":2,"age":22},
    {"name":3,"age":33}
],

age=men.map(function(item){
    return item.age;
})

    12. arr.sort  排序

var arr=[1,2,22,11,33,3,5,4];

console.log(arr.sort()) // [1,11,2,22,3,33,4,5] 

默认情况下sort方法是按ascii字母顺序排序的,而非我们认为是按数字大小排序

arr.sort(function(a,b){ return a-b}) 

a-b从小到大 b-a从大到小 


    13.  顺便写写我知道的排序方法

(1)冒泡排序  每次比较相邻的两个数,如果后一个数比前一个数小,换位置
        var tmp;
        for(var i=0,len=arr.length-1;iarr[j+1]){
                    //换位置
                    tmp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=tmp;
                }
            }
        }
        return arr;
    } 

    function bSort(arr){
        var tmp;
        arr.forEach(function(item,i){
            arr.forEach(function(item,i){
                if(item>arr[i+1]){
                    //换位置
                    tmp = arr[i + 1];
                    arr[i + 1] = arr[i];
                    arr[i] = tmp;
                }
            })
        })
        return arr
    }```

    (2)快速排序 二分法,找到中间的数,取出来(新数组),原数组没,每次和此数比较,小的放到左边,大的放到右面
   var len=arr.length;
   if(len<=1){ return arr}
   var   cIndex=Math.floor(len/2),
         c=arr.splice(c,1),
         left=[],
         right=[];
   arr.forEach(function(item,i){
       if(item
            arr2=[];
            function find(arr2,ele){
              for(var i= 0,len=arr2.length;i
json={},
arr2=[];

 arr.forEach(function(item,i){
     if(!json[item]){
         json[item]=222;
     }
 });
 for(var name in json){
     arr2.push(Number(name));//类型发生变化了
 }```

         (3) 利用sort方法排序,去掉旁边相同项
        arr2=[];
        arr.sort();
        for(var i=0;i
 str=str.substring(str.lastIndexOf(".")+1);
(2) var str="1.xxx.avi";
     
  var arr=str.split(".");
      
  console.log(arr[arr.length-1]);```

        2.字母翻转,首字母大写
       arr=str.split(" ");
       for(var i=0;i
json={},
n= 0,
sName;

for(var i= 0,len=str.length;i
            if(json[name]>n){
                n=json[name];
                sName=name;
            }
        }
        console.log("出现最多的字母"+sName+"次数为"+n);```

    4.  简单的url参数解析
  var search = window.location.search.substring(1);
  if (!search) {
      return;
  }
  var arr = search.split("&"),
          arr2 = [],
          json = {},
          key,
          alue;
  for (var i = 0; i < arr.length; i++) {
      arr2 = arr[i].split("=");

      key = arr2[0];
      value = arr2[1];
      json[key] = value;
  }

  return json;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83253.html

相关文章

  • 【连载】前端个人文章整理-从基础到入门

    摘要:个人前端文章整理从最开始萌生写文章的想法,到着手开始写,再到现在已经一年的时间了,由于工作比较忙,更新缓慢,后面还是会继更新,现将已经写好的文章整理一个目录,方便更多的小伙伴去学习。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 个人前端文章整理 从最开始萌生写文章的想法,到着手...

    madthumb 评论0 收藏0
  • JS基础入门篇(十)— 数组方法

    摘要:返回值拼接后的字符串。返回值新数组的。语法返回值被删除的那一个元素。返回值排序后的数组当什么都不传入的时候,默认由小到大排列。传入的时候,内的返回值小于或者等于,数组序列不变。 1.join 作用: 将数组通过指定字符拼接成字符串。语法: string arr.join([separator = ,]);参数: separator可选,如果省略的话,默认为一个逗号。如果 seprato...

    zero 评论0 收藏0
  • JS基础入门篇(十)— 数组方法

    摘要:返回值拼接后的字符串。返回值新数组的。语法返回值被删除的那一个元素。返回值排序后的数组当什么都不传入的时候,默认由小到大排列。传入的时候,内的返回值小于或者等于,数组序列不变。 1.join 作用: 将数组通过指定字符拼接成字符串。语法: string arr.join([separator = ,]);参数: separator可选,如果省略的话,默认为一个逗号。如果 seprato...

    张利勇 评论0 收藏0
  • JS基础入门篇(十)— 数组方法

    摘要:返回值拼接后的字符串。返回值新数组的。语法返回值被删除的那一个元素。返回值排序后的数组当什么都不传入的时候,默认由小到大排列。传入的时候,内的返回值小于或者等于,数组序列不变。 1.join 作用: 将数组通过指定字符拼接成字符串。语法: string arr.join([separator = ,]);参数: separator可选,如果省略的话,默认为一个逗号。如果 seprato...

    Batkid 评论0 收藏0

发表评论

0条评论

liaosilzu2007

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<