중복 제거 어레이
인터뷰가 종종 함수를 작성 JS를 사용하여 질문을 배열에 무거운 이동합니다.
1. ES6 새로운 설정 모드 ()
<! DOCTYPE HTML> <HTML LANG = "EN"> <head> <메타 캐릭터 = "UTF-8"> <메타 이름 = "뷰포트"내용 = "폭 = 기기 폭 초기 스케일 = 1.0"> < 메타 HTTP-당량 = "X-UA-지원"내용 = "즉 = 엣지"> <제목> 문서 </ 제목> </ head> <body> <script> 도착하자 = [1,1,2,2, 3,3,4,4,5,5 ]; 기능 독특한 (편곡) { 반환 새로운 세트 (편곡)는 } 하자 고해상도 = (편곡) 고유; CONSOLE.LOG (해상도); </ script> </ BODY> </ HTML>
2. 어레이를 이용하는 방법이있을 것 같이 IndexOf 중복
<! DOCTYPE HTML> <HTML LANG = "EN"> <head> <메타 문자 집합 = "UTF-. 8"> <메타 이름 = "뷰포트"내용 = "너비 = 장치 폭, 초기 스케일 = 1.0"> < HTTP-당량 = 메타 "X - UA에 호환"내용 = "IE = 엣지"> <제목> 문서가 </ 제목> 헤드 </> <BODY> <스크립트> 송출의 ARR = [1,1,1,2, 3,3,4,11,112,332,332,2,2,3,3,4,4,5,5 ]; / * 아이디어 : 1. 비어있는 배열 생성 도착 통해 데이터주기, 빈 배열 결정 여부 2. 로 밀어 넣기를 가지고 도착 값 *를 / uniqueArr 내버려 = []; (arr.map 아이템 =>{ // 을 console.log (항목); uniqueArr.indexOf (항목) == -1? uniqueArr.push (항목) : "" ; }) CONSOLE.LOG (uniqueArr); </ script> </ BODY> </ HTML>
중복 제거 Array 객체
무게를 줄이기 위해 객체의 배열의 1.
= 기록하자 (콘솔) console.log.bind을; 하자 사람 = [ {ID : 0 명 "小의明" }, {ID : 1 명 "小张" }, {ID : 2 명 "小李" }, {ID : 3, 이름 "小孙" }, {ID : 1 명"小周" }, {ID : 2 명"小陈" } ]; OBJ하자 = } {; 사람 = person.reduce ((현재, 다음) => { OBJ [next.id] ''? OBJ [next.id = 참 && cur.push (다음) 복귀 CUR;// 설정 기본 타입의 배열 CUR, 그리고 빈 배열의 초기 값 로그 (사람);
문자열 배열 2. 사용 경량화와 같은 특성 값을 유지하도록 2
다시하기 전에 이동
다시 후 이동
<! DOCTYPE HTML> <HTML LANG = "EN"> <head> <메타 캐릭터 = "UTF-8"> <메타 이름 = "뷰포트"내용 = "폭 = 기기 폭 초기 스케일 = 1.0"> < 메타 HTTP-당량 = "X-UA-지원"내용 = "즉 = 엣지"> <제목> 문서 </ 제목> </ head> <body> <script> 할 사람 = [{ '나이'41 , ' ID ': 12 , }, { '나이 '20 , 'ID ': 12 , }, { '나이 ': 23 , 'ID': 12 , }, { '나이': 25 , 'ID'15 , }, { 연령 "30 , "ID "15 , }, { 연령"12 인 , 'ID'20 인 , } ] 송출 로그 = (console.log.bind 콘솔 .LOG) 송출 OBJ = {} 가 obj2가 송출 = {} (가) peon2 내버려 = []; 페온 내버려 = person.reduce ((CUR, 다음) => { // ""를 표현하는 삼중 무엇도 나타낸다 여기 next'id 작동하지 않는 것은 다시 드 '이 프로그램 next.'id 기반으로한다는 것을 의미'; // OBJ [next.id] ''? OBJ [다음.ID는 (다음)를 참 && cur.push =; IF (OBJ [next.id]) { // , 어레이 peon2에 추가되는 경우, 본 배열 또는 객체 ID가 존재 분석 ; peon2.push (NEXT) } 다른 { OBJ [next.id] = true로를 && CUR (다음) .push; } // (OBJ) 로그 리턴 CUR] }, []) // 설정된 기본 유형 어레이 CUR을 널값 데이터 리턴 // 재 다시 데이터 peon2 = peon2한다. 줄이거 ((CUR, 다음) => { IF (obj2보다 [next.id]) { peon2.push (NEXT) } 다른 { obj2보다 [next.id] = true로 && cur.push (NEXT); } 반환 CUR을; }, []) peon2.map (항목 => { peon.push (항목) }) 로그 (보병); </ script> </ BODY> </ HTML>
추가 정보 :
- https://www.cnblogs.com/caideyipi/p/7679681.html
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce