JS 의 교체 (배열)

6722 단어

무엇이 교체 입 니까?목표 (배열, 대상 등) 의 모든 항목 을 순서대로 방문 하 는 것 으로 간단하게 이해 할 수 있다.
배열 의 교 체 는 나 에 의 해 두 가지 로 나 뉜 다.
  • 찾기
  • 옮 겨 다 니 기
  •  
    찾기:
      1.indexOf(item,start) 
    이 방법 은 지정 한 요소 값 위 치 를 검색 하고 아래 표 시 를 되 돌려 줍 니 다.
    인자: item 은 찾 을 값 입 니 다. start 는 어디서부터 찾 으 시 겠 습 니까?ps: start 는 마 이 너 스 를 취 할 수 있 습 니 다. 밤 index Of (x, - 5) 를 들 면 꼴찌 6 번 부터 (꼴찌 1 번 이 0 이 니까) 정상 적 인 0 번 째 를 찾 았 다 는 뜻 입 니 다.
    여러 번 나타 나 면 처음 나타 난 아래 표 시 를 되 돌려 줍 니 다.나타 나 지 않 으 면 되 돌아 가기 - 1.
        var fruits = ["Apple", "Orange", "Apple", "Mango"];
        var a = fruits.indexOf("Apple");
        console.log(a);//0

      
    2. lastIndex Of (item, start) 는 위의 방법 과 마찬가지 로 다른 점 은 역 주 행 이 고 끝 에서 부터 찾 는 것 이다.start 도 마 이 너 스 를 지정 할 수 있 습 니 다. start 에서 - 5 를 취하 면 아래 5 로 표 시 된 곳 부터 계속 앞으로 찾 는 것 을 나타 냅 니 다.
        var fruits = ["Apple", "Orange", "Apple", "Mango"];
        var a = fruits.lastIndexOf("Apple");
        console.log(a);//2

     
    3. find () 방법 은 테스트 함 수 를 통과 한 첫 번 째 배열 요소 의 값 을 되 돌려 줍 니 다.
    매개 변수: (항목 값, 항목 색인, 배열 자체)
    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.find(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }

      
      4.findIndex()  방법 은 테스트 함 수 를 통과 한 첫 번 째 배열 요소 의 색인 을 되 돌려 줍 니 다.
    매개 변수: (항목 값, 항목 색인, 배열 자체)
    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.findIndex(myFunction);
    
    function myFunction(value, index, array) {
      return value > 18;
    }

     
    위의 몇 가지 방법 은 말 할 것 이 없 으 니, 다음 이 야 말로 중점 이다.
     
    옮 겨 다 니 기: 이런 방법 은 7 가지 가 있다.
      1.some()
      2.every()
    두 함수 모두 세 개의 값 (항목 값, 항목 색인, 배열 자체) 을 받 아들 입 니 다.
    이 두 가지 방법 은 배열 의 모든 항목 을 순서대로 판단 하여 boolean 형식의 값 을 되 돌려 줍 니 다.다른 것 은 some 는 한 가지 만족 조건 만 있 으 면 true 로 돌아 가 고 every 는 모든 조건 을 만족 시 켜 야 true 로 돌아 갈 수 있다 는 것 이다.
    밤 을 들다
      var a=[1,2,3,4,5,4,3,2,1];
      
    var everyResult=a.every(function(item,index,a){   return (item>2);   });   var someResult=a.some(function(item,index,a){   return (item>2);   });
      alert("everyResult:"+everyResult);//false
      alert("someResult:"+someResult);//true

    물론 화살표 함수 의 형식 이 될 수도 있 습 니 다.
    a.some((item)=>{return item>2})

    이 두 가지 방법 은 판단 만 하고 배열 을 바 꾸 지 않 는 다.
     
      3.forEach()
      4.filter()
      5.map()
    왜 이 세 가 지 를 같이 말 합 니까? 왜냐하면 그들 은 앞의 some, every 와 함께 면접 문제 로 자주 시험 을 보기 때 문 입 니 다.
    세 함수 모두 세 개의 값 (항목 값, 항목 색인, 배열 자체) 을 받 습 니 다.
    foreach: for 순환 과 같은 작업 을 하고 순환 적 으로 옮 겨 다 니 며 모든 항목 을 조작 합 니 다.
    map: foreach 와 매우 비슷 합 니 다. 함수 호출 후의 결과 로 구 성 된 배열 을 되 돌려 줍 니 다.
    filter: 위의 두 가지 와 비슷 하지만 함수 호출 결과 값 이 true 인 항목 을 되 돌려 줍 니 다. (호출 된 함 수 를 표현 식 으로 이해 합 니 다. 즉, 이 표현 식 의 모든 항목 에 맞 는 새 배열 을 되 돌려 줍 니 다)
    구별:
    맵 과 foreach 는 사실 용법 에 있어 서 별 차이 가 없 지만!다른 것 이 있 습 니 다. foreach 는 값 을 되 돌려 주지 않 았 습 니 다.
    그리고 filter 는 말 그대로 필 터 는 배열 이 조건 에 맞지 않 는 항목 을 걸 러 냅 니 다.따라서 용도 에 있어 서 filter 는 크게 다 를 수 있 으 며, 원 하지 않 는 배열 항목 을 선별 하 는 데 자주 사용 된다.
    밤 을 들 겠 습 니 다.
      var a=[1,2,3,4,5,4,3,2,1];
      var filterResult=a.filter(function(item,index,a){
            return (item>2);
        });
    var mapResult=a.map(function(item,index,a){ return item*2; });
      var foreachResult=a.forEach(function(item,index,a){
      if(item<5) a[index]=0;
      });
      alert("filterResult:"+filterResult);  //3,4,5,4,3
      alert("mapResult:"+mapResult);     //2,4,6,8,10,8,6,4,2
      alert("foreachResult:"+foreachResult); //underfined
      alert("foreachResult:"+a);        //0,0,0,0,5,0,0,0,0

      6.reduce()  
      7.reduceRight()
    인자:
  • 총수 (초기 값 / 이전에 되 돌아 온 값)
  • 항목 값
  • 항목 색인
  • 배열 자체

  • 이번에 나 는 직접 밤 을 들 었 다.
    var a=[1,2,3,4,5,4,3,2,1];

    var sum=a.reduce(function (prev,cur,index,array){
      return prev+cur;
    })
    alert("sum:"+sum);

    상소 용법 은 배열 의 모든 항목 을 구 하 는 데 가장 자주 사용 되 는 용법 이다.사실은 적 을 구 하 는 것 도 가능 하 다. 이 방법의 영혼 은 바로 이 prev 값 이 있다. 구체 적 으로 네가 어떻게 응용 하 는 지 를 보 자. (그러나 사실은 많이 사용 하지 않 고 외부 var 에서 sum 변수 도 할 수 있다)
    ps: reduce () 와 reduceRight () 는 빈 배열 에 대해 서 는 리 셋 함 수 를 실행 하지 않 습 니 다.
     
    추가, 주의: foreach, filter, every, some 은 빈 자 리 를 건 너 뛰 고 map 는 빈 자 리 를 건 너 뛰 지만 이 값 을 유지 합 니 다.
     
    개인 적 으로 어 리 석 은 견 해 는 참 는 것 을 좋아 하지 않 는 다.

    좋은 웹페이지 즐겨찾기