>웹 프론트엔드 >JS 튜토리얼 >js 배열 및 문자열에 대한 일반적인 방법 요약

js 배열 및 문자열에 대한 일반적인 방법 요약

高洛峰
高洛峰원래의
2017-01-14 11:37:141163검색

최근에는 배열과 문자열부터 시작해서 js의 기본을 정리하고 있어요.

string 일반적인 방법:

1.substring(시작 시작 위치 인덱스, 끝 끝 위치 인덱스) 가로채는 위치에는 끝 위치 문자가 포함되지 않으며 가로채기를 나타내는 매개변수 하나만 작성됩니다. 끝에서

var str='abcdefg'; 
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(시작 시작 위치 인덱스, 끝 위치 인덱스)는 기본적으로 하위 문자열과 유사하지만 차이점은 매개 변수가 음수라는 점입니다.

var str='abcdefg';
str.slice(1)  //bcdefg      str.substring(1,3) // bc

음수 값을 입력하면 해당 값이 문자열 길이에 추가됩니다.

str.slice(-1)                                                     
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을 반환합니다(시작 위치 인덱스 시작, 반환할 문자 수 끝)

var str='abcdefg';
str.substr(1) //bcdefg      str.substr(1,1) //b

음수 값을 입력하면 문자열 길이에 시작 매개변수가 추가되고, 끝이 음수이면 매개변수가 0이 됩니다.

str.substr(-1) =>str.substr(6)//g        
str.substr(-2,-3) // ''

4 .charAt(index) 메소드는 지정된 인덱스 위치 문자를 반환합니다. 인덱스 값이 유효한 범위(0 및 문자열 길이에서 1을 뺀 값)를 초과하는 경우 빈 문자열이 반환됩니다.

var str='abcdefg';
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는 정규식과 일치하는 문자열을 찾은 다음 일치하는 문자열을 새 문자열로 바꾸는 데 사용됩니다.

http://www.cnblogs.com/bijiapo/p/ 5451924. html

배열에 자주 사용되는 메소드

1. push 끝에 추가 추가된 배열을 반환

2. unshift 맨 앞에 추가 추가된 배열을 반환

3. Shift 삭제(앞에서) 처리된 배열 반환

4. pop 마지막 항목 삭제 처리된 배열 반환

5. 처리된 배열 반환

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) 시작(시작)부터 끝(끝 포함되지 않음)까지 가로채기

새 배열로 돌아가면 원래 배열은 변경되지 않습니다.

var arr=[1,2,3,4,5],new=arr.slice(2,4);
console.log(new);  // [3,4]
console.log(arr);  // [1,2,3,4,5]

8. 병합된 배열 연결

9. 배열 배열

(1). 위의 str 슬라이스와 유사하게 매개변수 위치를 가로채서 음수를 채웁니다. 원래 배열이

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입니다. 는 인덱스이고, 배열은 배열 자체를 나타냅니다.

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]

기본적으로 정렬 방법은 우리가 생각하는 숫자 순서가 아닌 ASCII 알파벳 순서로 정렬됩니다

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

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

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

    (1)冒泡排序  每次比较相邻的两个数,如果后一个数比前一个数小,换位置

function bSort(arr){
    var tmp;
    for(var i=0,len=arr.length-1;i<len;i++){
      for(var j=0;j<len;j++){
        if(arr[j]>arr[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)快速排序 二分法,找到中间的数,取出来(新数组),原数组没,每次和此数比较,小的放到左边,大的放到右面     

function fastSoft(arr){
       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<c[0]){
           left.push(item);
         }else{
           right.push(item);
         }
       })
    return fastSoft(left).concat(c,fastSoft(right));
  }

  14. 数组的去重也写下吧

    (1)双层循环不是很好                

var arr=[2,3,2,2,2,4,5],
      arr2=[];
        function find(arr2,ele){
         for(var i= 0,len=arr2.length;i<len;i++){
           if(arr2[i]==ele) return true;
         }
          return false;
        }
        for(var i= 0,len=arr.length;i<len;i++){
          if(!find(arr2,arr[i])){
            arr2.push(arr[i]);
          }
        }

    (2)利用json的key值无重复              

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

     (3) 利用sort方法排序,去掉旁边相同项      

var arr=[2,3,2,4,4,4,5],
   arr2=[];
     arr.sort();
     for(var i=0;i<arr.length;i++){
       if(arr[i]==arr[i+1]){
         arr.splice(i--,1);
       }
     }

 

      一些常见数学方法

    math.abs() 取绝对值  math.ceil() 向上取整 math.floor() 向下取整
    math.round() 四舍五入 math.roundom
function getRan(n,m){
  return Math.floor(Math.random()*(m-n)+n);
}

      数组和字符串的一些综合应用

      1. 截取后缀名

        (1) var str='1.xxx.avi';

           str=str.substring(str.lastIndexOf('.')+1);

        (2) var str='1.xxx.avi';

var arr=str.split(&#39;.&#39;);
console.log(arr[arr.length-1]);

   

      2.字母翻转,首字母大写          

var str=&#39;wo shi yi ge demo&#39;,
   arr=str.split(&#39; &#39;);
   for(var i=0;i<arr.length;i++){
     console.log()
    arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
   }
   arr.reverse();
   str=arr.join(&#39; &#39;);

      3. str中字符出现次数的统计          

var str=&#39;aaaandkdffsfsdfsfssq12345&#39;,
   json={},
   n= 0,
   sName;
   for(var i= 0,len=str.length;i<len;i++){
     var Letter=str.charAt(i);
     //统计次数
     if(json[Letter]){
       json[Letter]++;
     }else{
       json[Letter]=1;
     }
   }
   //找最大
   for(var name in json){
     if(json[name]>n){
       n=json[name];
       sName=name;
     }
   }
   console.log(&#39;出现最多的字母&#39;+sName+&#39;次数为&#39;+n);

   

      4.  简单的url参数解析              

function getData() {
        var search = window.location.search.substring(1);
        if (!search) {
          return;
        }
        var arr = search.split(&#39;&&#39;),
            arr2 = [],
            json = {},
            key,
            alue;
        for (var i = 0; i < arr.length; i++) {
          arr2 = arr[i].split(&#39;=&#39;);
          key = arr2[0];
          value = arr2[1];
          json[key] = value;
        }
        return json;
       }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持PHP中文网!

更多js数组与字符串常用方法总结相关文章请关注PHP中文网!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.