javascript 배열 에 대한 일반적인 조작 코드 배열 방법 집합

3380 단어 배열
1.shift:원래 배열 의 첫 번 째 항목 을 삭제 하고 요 소 를 삭제 한 값 을 되 돌려 줍 니 다.배열 이 비어 있 으 면 undefined var a=[1,2,3,4,5]로 돌아 갑 니 다.var b = a.shift(); //a:[2,3,4,5]b:1 2.unshift:파 라 메 터 를 원래 배열 의 시작 에 추가 하고 배열 의 길이 var a=[1,2,3,4,5]로 되 돌려 줍 니 다.var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5]b:7 주:IE 6.0 에서 테스트 반환 값 은 모두 undefined 이 고 FF 2.0 에서 테스트 반환 값 은 7 이기 때문에 이 방법의 반환 값 은 믿 을 수 없 으 며 반환 값 을 사용 할 때 splice 로 이 방법 을 대체 할 수 있 습 니 다.3.pop:원래 배열 의 마지막 항목 을 삭제 하고 요소 의 값 을 되 돌려 줍 니 다.배열 이 비어 있 으 면 undefined var a=[1,2,3,4,5]로 돌아 갑 니 다.var b = a.pop(); //a:[1,2,3,4]b:5 4.push:파 라 메 터 를 원래 배열 의 끝 에 추가 하고 배열 의 길이 var a=[1,2,3,4,5]로 되 돌려 줍 니 다.var b = a.push(6,7); //a:[1,2,3,4,5,6,7]b:7.concat:새로운 배열 로 돌아 가 원 배열 에 파 라 메 터 를 추가 하여 구 성 된 var a=[1,2,3,4,5];var b = a.concat(6,7); //a:[1,2,3,4,5]b:[1,2,3,4,5,6,7]6.splice(start,deleteCount,val 1,val 2,...):start 위치 부터 deleteCount 항목 을 삭제 하고 이 위치 부터 val 1,val 2,var a=[1,2,3,4,5]를 삽입 합 니 다.var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4] var b = a.splice(0,1); //shift a.splice(0,0,-2,-1);var b = a.length; //같은 unshift var b=a.splice(a.length-1,1);/pop a.splice(a.length,0,6,7);var b = a.length; //같은 push 7.reverse:배열 을 거꾸로 var a=[1,2,3,4,5];var b = a.reverse(); //a:[5,4,3,2,1]b:[5,4,3,2,1]8.sort(orderfunction):지정 한 매개 변수 에 따라 배열 을 정렬 var a=[1,2,3,4,5];var b = a.sort(); //a:[1,2,3,4,5]b:[1,2,3,4,5]9.slice(start,end):원래 배열 에서 지정 한 시작 부터 아래 표 시 를 끝 낼 때 까지 의 항목 으로 구 성 된 새로운 배열 var a=[1,2,3,4,5]를 되 돌려 줍 니 다.var b = a.slice(2,5); //a:[1,2,3,4,5]b:[3,4,5]10.join(separator):배열 의 요 소 를 하나의 문자열 로 만 들 고 separator 를 구분자 로 하고 생략 하면 기본 쉼표 로 구분자 var a=[1,2,3,4,5];var b = a.join("|"); //a:[1,2,3,4,5]b:"1|2|3|4|5"배열 은 자 바스 크 립 트 가 제공 하 는 내부 대상 입 니 다.이것 은 표준 집합 입 니 다.우 리 는(push)를 추가 하고(shift)안의 요 소 를 삭제 할 수 있 습 니 다.우 리 는 for 순환 을 통 해 안의 요 소 를 옮 겨 다 닐 수 있 습 니 다.그러면 배열 을 제외 하고 자 바스 크 립 트 에 다른 집합 이 있 습 니까?자 바스 크 립 트 의 언어 특성 상 유 니 버 설 대상 에 게 동적 으로 속성 을 추가 하고 삭제 할 수 있 습 니 다.그래서 오 브 젝 트 도 JS 의 특별한 집합 이 라 고 볼 수 있다.Array 와 Object 의 특성 을 비교 해 보 겠 습 니 다:Array:새로 만 들 기:var ary=new Array();var ary=[];추가:ary.push(value);삭제:delete ary[n];옮 겨 다 니 기:for(var i=0;i < ary.length ; ++i ) ary[i]; 개체:새로 만 들 기:var obj=new Object();var obj={};추가:obj[key]=value;(key 는 string)삭제:delete obj[key];옮 겨 다 니 기:for(var key in obj)obj[key];위의 비 교 를 통 해 알 수 있 듯 이 Object 는 하나의 집합 으로 사용 할 수 있 습 니 다.Popup 창 으로 무한 웹 페이지 메뉴 만 들 기(3)에서 에 릭 이 실현 한 그 를 소개 한 적 이 있 습 니 다.MenuCache__,그것 은 바로 시 뮬 레이 션 의 집합 대상 이다.Array 에서 지정 한 값 을 검색 하려 면 전체 배열 을 옮 겨 다 녀 야 합 니 다.코드:
 
var keyword = ;
  for ( var i=0 ; i < ary.length ; ++i )
  {
  if ( ary[i] == keyword )
  {
  // todo
  }
  }
우 리 는 Object 에서 지정 한 key 항목 을 검색 하려 면 코드:
 
var key = '';
  var value = obj[key];
  // todo
Object 의 이 기능 은 유 니 크 문자열 집합 을 효과적으로 검색 할 수 있 습 니 다.Array 를 옮 겨 다 니 는 시간 복잡 도 는 O(n)입 니 다.오 브 젝 트 를 옮 겨 다 니 는 시간의 복잡 도 는 O(1)다.10000 회 집합 한 for 검색 에 대한 대가 도 수 십 ms 이지 만 1000*1000 회 검색 또는 그 이상 이 라면 Object 를 사용 하 는 장점 이 단번에 나타난다.그 전에 저 는 mapping 을 만 들 었 습 니 다.100 개의 Unique 문 자 를 1000 개의 문자열 배열 에 매 핑 했 습 니 다.25-30 s 가 걸 렸 습 니 다!나중에 for 를 Object 시 뮬 레이 션 집합 으로 바 꾼 구성원 인용,같은 데 이 터 량 mapping,시간 은 1.7-2s!!집합 에 대한 스 트 리밍 효율(높 은 것 에서 낮은 것):var value=obj[key];>for ( ; ; ) > for ( in )。효율 이 가장 낮은 것 은 for(in)입 니 다.집합 이 너무 크 면 for(in)를 사용 하지 마 십시오.

좋은 웹페이지 즐겨찾기