자바스크립트 some(), indexOf(), lastIndexOf() 을 이용한 배열 중복 체크

화면단에서 유효성체크 작업중 배열에 값이 중복 값이 들어있는지 확인해야할 일이 생겼다.
정통적인 방법인 for문 돌려 체크하는 방법도 있지만, 이제 조금 세련된 방법으로 중복체크를 해보자

언제까지 for문만 돌릴껀가!!

일단 3가지 자바스크립트 함수에 대해 알아야 한다. 

 

1. some() 함수 

array.some(function(currentValue, index, arr), thisValue)

/*예시*/
const ages = [3, 10, 18, 20];
function checkAdult(age) {
  return age >= 18;
}
ages.some(checkAdult)   // Returns true

some() 함수는 callback이 참을 반환하는 요소를 찾을 때까지 배열에 있는 각 요소에 대해 한 번씩 callback 함수를 실행하여, 해당하는 요소를 발견한 경우 즉시 true를 반환하는 함수 입니다. 찾지 못하면 false 를 반환 합니다. 

https://www.w3schools.com/jsref/jsref_some.asp

 

JavaScript Array some() Method

JavaScript Array some() Example Check if any values in the ages array are 18 or over: const ages = [3, 10, 18, 20]; ages.some(checkAdult)   // Returns true function checkAdult(age) {   return age >= 18; } Try it Yourself » More "Try it Yourself" exam

www.w3schools.com

 

2. indexOf()

array.indexOf(item, start)

/*예시*/
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.indexOf("Apple")   // Returns 2

indexOf() 함수는 배열 안에서 찾으려는 값과 정확하게 일치 하는 '첫번째' 값의 index를 반환 합니다. 

https://www.w3schools.com/jsref/jsref_indexof_array.asp

 

JavaScript Array indexOf() Method

JavaScript Array indexOf() Example Search an array for the item "Apple": const fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.indexOf("Apple")   // Returns 2 Try it Yourself » More "Try it Yourself" examples below. Definition and Usage The ind

www.w3schools.com

3. lastIndexOf() 

array.lastIndexOf(item, start)

/*예시*/
const fruits = ["Apple", "Orange", "Apple", "Mango"];
fruits.lastIndexOf("Apple") // Returns 2

lastIndexOf() 함수는 배열 안에서 찾으려는 값과 정확하게 일치 하는 '마지막' 값의 index를 반환 합니다. 

https://www.w3schools.com/jsref/jsref_lastindexof_array.asp

 

JavaScript Array lastIndexOf() Method

JavaScript Array lastIndexOf() Example Search an array for the item "Apple": const fruits = ["Apple", "Orange", "Apple", "Mango"]; fruits.lastIndexOf("Apple")   // Returns 2 Try it Yourself » More "Try it Yourself" examples below. Definition and Usage

www.w3schools.com

 

이 세 가지 함수를 조합하면 배열의 중복 값 여부를 체크할 수 있습니다.

var arr = ['a', 'b', 'c', 'a'];

function isDup(arr)  {
  return arr.some(function(x) {
    return arr.indexOf(x) !== arr.lastIndexOf(x);
  });  
}

var result = isDup(arr);

document.writeln(result);

1. some() 함수로 배열 arr의 값을 순서대로 callback 함수로 전달 하여 실행 arr.some(function(x) {});

2. 배열에서 x값의 index를 indexOf() 와 lastIndexOf() 로 확인 하여 같지 않으면 true 리턴 

   return arr.indexOf(x) !== arr.lastIndexOf(x);

   배열의 x값의 중복이 없다면 두 index 값은 동일 : false

                     중복이 있다면 두 index 값은 다름 : true

3.  some() 함수의 callback 함수는 중복이 존재하면 true를 리턴하고, 중복이 존재하지 않으면 false를 리턴

 

some() 함수를 이용하면 for문을 돌려서 체크 하는것보다 더 깔끔하고 세련되게 코드를 짤수 있다.

반응형

아이패드 중고거래시 필수 체크 항목이죠. 배터리 효율!!!

중고로 살때나 팔때나 배터리 효율은 100%에 가까울수록 좋습니다. 가격을 좀 더 받을수도 있고요.

 

 

1. 아이패드 내부 로그 기능을 활용하여 배터리 효율 확인하는 방법

아이패드 내부 로그 기능을 활용하면 별도의 프로그램 설치없이 배터리 성능을 확인할수 있습니다. 이방법은 윈도우PC가 없거나 MAC만 사용하시는 분, 프로그램 설치가 귀찮으신 분들에게 그리고 시간적 여유가 있으신분들에게 추천합니다. 

배터리 성능을 기기에서 직접 측정하기 때문에 더 정확하다는 소리도 있습니다.

 

  • 설정 => 개인 정보 보호 => 분석 및 향상 으로 들어가 주세요

  • 상단에 iPad 분석 공유를 활성화 해주세요. 활성화 후 하루(24시간)정도 지난 뒤에 배터리 성능 확인 가능합니다.  하루가 지나면 분석데이터에 아이패드 로그가 쌓이기 시작합니다. 

 

  • 분석 데이터에서 log-aggregated 파일 을 찾아 주세요. log-aggregated 라는 이름을 가진 ips 파일 중 측정하는 전날의 파일을 열주세요. ex) 2021-09-23 측정 => log-aggregated-2021-09-22-091110.ips

  • 분석된 로그 정보를 전부 복사하여 텍스트 편집기에 붙여 넣어주세요. 복사후 기본 메모 어플을 열어 복사한 내용을 붙여넣어 주세요. 

  • 메모 앱에서 메모에서 찾기 를 눌러주시고 검색창에 아래 내용을 검색해주세요.
- battery.CycleCount :  아이패드 배터리 충전 횟수 
                                아이패드 평균 배터리 수명 사이클 수는 1,000회 정도 라고 합니다. 
- battery.MaxumumCapacityPercent : 아이패드 배터리 최대 성능 수치 

 

아이패드는 배터리 충전 횟수 56회 / 배터리 성능 : 100% 로 아직까지는 배터리 성능이 짱짱하네요. 근데 요즘 아이패드 신제품 발표로 중고값이 떨어져서... ㅠㅠㅠㅠㅠㅠ 

 

 

2. PC를 통해 배터리 효율 확인하는 방법( 3uTools )

PC에 3uTools라는 프로그램을 설치하고 아이패드를 PC와 연결하여 배터리 성능을 확인하는 방법 입니다. 아이패드 내부 로그를 기다리기 귀찮으신분, 윈도우 PC가 있으신분들에게 추천합니다. 

3uTools : http://www.3u.com/

 

3uTools | The best all-in-one tool for iOS users

The Most Efficient iOS Files & Data Management Tool 3uTools makes it so easy to manage apps, photos, music, ringtones, videos and other multimedia files. Fully view iOS device' s different statuses, including activation, jailbreak, battery and iCloud lock

www.3u.com

사이트에 접속하시면 메인 화면에 Download 버튼이 보이는데, 해당 버튼을 눌러 3uTools를 다운받고 설치해주세요. 

 

  • 설치가 완료 되었으면 PC와 아이패드를 연결해주세요.
  • iDevice 메뉴에서 Info 메뉴를 선택해 주세요.
  • Charge Times 와  Battery Life 를 수치를 확인하세요.
  • Details 를 클릭하면 더 자세한 내용을 확인 가능합니다.

 

 

반응형

'일상' 카테고리의 다른 글

아이패드 키보드 안올라옴  (0) 2022.08.04
아이패드 애플펜슬 화면 캡쳐(스크린샷) 방법  (0) 2022.08.04

There is no statement named [DB 맵핑] in this SqlMap

There is no statement named [DB 맵핑] in this SqlMap 오류는 종종 발생하는데, 대부분의 원인은 쿼리호출 id 오타가 많다.

대소문자 구분좀..

There is no statement named 에러 발생시 아래 3가지 사항을 확인해주세요.

 


1. 쿼리문이 저장되어있는 XML의 ID 확인
<select id="
쿼리id" parameterClass="hashmap" resultClass="hashmap">

2. Java 파일에서 쿼리문 호출 ID 확인
select("
쿼리id", map);

3. sqlMapConfig.xml 파일에 등록 여부 확인
쿼리문을 등록하는 xml 파일에 쿼리문 xml이 등록되어있는지 확인

 


오타나 설정 하나로 몇시간씩 삽질하지 않기를 바랍니다~

반응형

+ Recent posts