Skip to content

Commit

Permalink
[ko] TypedArray.prototype.findIndex() 신규 번역 외 (#22448)
Browse files Browse the repository at this point in the history
- TypedArray.prototype.findIndex() 신규 번역
- Array.prototype.findIndex() 최신 동기화
  • Loading branch information
wisedog authored Jul 30, 2024
1 parent 3a0b632 commit 534d4a0
Show file tree
Hide file tree
Showing 2 changed files with 120 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
title: Array.prototype.findIndex()
slug: Web/JavaScript/Reference/Global_Objects/Array/findIndex
l10n:
sourceCommit: 34a34bee83fb4accf073ebc0c8cfc8eff956dc9b
sourceCommit: 4074fc09b07902a560b9b321c1f966452b5afc7c
---

{{JSRef}}

**`findIndex()`** 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으면 -1을 반환합니다.
{{jsxref("Array")}} 인스턴스의 **`findIndex()`** 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다.
만족하는 요소가 없으면 -1을 반환합니다.

판별 함수를 만족하는 첫번째 인덱스 대신 값을 반환하는 {{jsxref("Array.prototype.find", "find()")}} 메서드도 참고하세요.
판별 함수를 만족하는 첫번째 인덱스 대신 값을 반환하는 {{jsxref("Array.prototype.find", "find()")}} 메서드도 참고하시기 바랍니다.

{{EmbedInteractiveExample("pages/js/array-findindex.html","shorter")}}

Expand All @@ -23,38 +24,27 @@ findIndex(callbackFn, thisArg)
### 매개변수

- `callbackFn`
- : 배열의 각 요소마다 실행할 함수입니다. 일치하는 요소가 발견되었음을 나타내는 [참인 ](/ko/docs/Glossary/Truthy)을 반환하고 그렇지 않으면 [거짓인](/ko/docs/Glossary/Falsy)을 반환해야합니다. 함수는 다음과 같은 인수와 함께 호출됩니다.
- : 배열의 각 요소마다 실행할 함수입니다. 일치하는 요소가 발견되었음을 나타내는 [참 같은 ](/ko/docs/Glossary/Truthy)을 반환하고 그렇지 않으면 [거짓같은](/ko/docs/Glossary/Falsy)을 반환해야합니다. 함수는 다음과 같은 인수와 함께 호출됩니다.
- `element`
- : 배열에서 처리중인 현재 요소입니다.
- : 배열에서 처리 중인 현재 요소입니다.
- `index`
- : 배열에서 처리중인 현재 요소의 인덱스입니다.
- : 배열에서 처리 중인 현재 요소의 인덱스입니다.
- `array`
- : `findIndex()` 함수가 호출된 배열입니다.
- `thisArg` {{optional_inline}}
- : `callbackFn`을 실행할 때 `this`로 사용할 값입니다. [반복 메서드](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#iterative_methods)참조하세요.
- : `callbackFn`을 실행할 때 `this`로 사용할 값입니다. [순회 메서드](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#iterative_methods)참고하세요.

### 반환 값

테스트를 통과하는 첫 번째 요소의 인덱스입니다.
일치하는 요소가 없으면 -1을 반환합니다.
테스트를 통과하는 첫 번째 요소의 인덱스입니다. 일치하는 요소가 없으면 `-1`을 반환합니다.

## 설명

`findIndex()`[반복 메서드](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#iterative_methods)입니다. `callbackFn` 함수를 배열의 각 요소에 대해 오름차순 인덱스 순서로 한 번씩 호출하고, `callbackFn`[참인 ](/ko/docs/Glossary/Truthy)을 반환할 때까지 반복합니다. 그런 다음 `findIndex()`는 해당 요소의 인덱스를 반환하고 배열 반복을 중단합니다. `callbackFn`참인 값을 반환하지 않으면 `findIndex()``-1`을 반환합니다.
`findIndex()`[순회 메서드](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#iterative_methods)입니다. `callbackFn` 함수를 배열의 각 요소에 대해 오름차순 인덱스 순서로 한 번씩 호출하고, `callbackFn`[참 같은 ](/ko/docs/Glossary/Truthy)을 반환할 때까지 반복합니다. 그런 다음 `findIndex()`는 해당 요소의 인덱스를 반환하고 배열 반복을 중단합니다. `callbackFn`참 같은 값을 반환하지 않으면 `findIndex()``-1`을 반환합니다. 보편적으로 이들 메서드가 동작하는 방법을 알고 싶으시다면 [순회 메서드](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#iterative_methods) 섹션을 읽어보시기 바랍니다.

`callbackFn`은 배열의 _모든_ 인덱스에 대해 호출되며, 할당된 값만이 아닙니다. [희소 배열](/ko/docs/Web/JavaScript/Guide/Indexed_collections#sparse_arrays)의 빈 슬롯은 `undefined`와 동일하게 동작합니다.
`callbackFn`은 배열의 값이 할당된 인덱스 뿐만이 아닌 모든 인덱스에 대해 호출됩니다. [희소 배열](/ko/docs/Web/JavaScript/Guide/Indexed_collections#희소_배열)의 빈 슬롯은 `undefined`와 동일하게 동작합니다.

`findIndex()`는 호출된 배열을 변경하지 않지만, `callbackFn`으로 제공된 함수는 변경할 수 있습니다. 그러나 배열의 길이는 `callbackFn`의 첫 번째 호출 "전에" 저장됩니다. 따라서 다음과 같습니다.

- `callbackFn``findIndex()` 호출이 시작된 배열의 초기 길이를 초과하여 추가된 요소를 방문하지 않습니다.

- 이미 방문한 인덱스에 대한 변경은 `callbackFn`이 다시 호출되지 않도록 합니다.

- `callbackFn`에 의해 배열의 아직 방문하지 않은 요소가 변경되었다면, `callbackFn`에 전달된 값은 해당 요소가 방문되는 시점의 값이 됩니다. [삭제된](/ko/docs/Web/JavaScript/Reference/Operators/delete) 요소는 `undefined`인 것처럼 방문됩니다.

> **경고:** 위에서 설명한 종류의 동시 수정은 종종 이해하기 어려운 코드로 이어지며, 일반적으로 피해야 합니다(특별한 경우를 제외하고).
`findIndex()` 메서드는 [일반적](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#generic_array_methods)입니다. `length` 속성과 정수 키 속성을 가진 `this` 값을 기대합니다.
`findIndex()` 메서드는 [범용](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#generic_array_methods)메서드 입니다. `this` 값에 `length` 속성과 정수 키 속성 만을 기대합니다.

## 예제

Expand All @@ -75,10 +65,28 @@ function isPrime(element) {
return true;
}

console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, 찾을 수 없음
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
```

### callbackFn의 세 번째 인수 사용하기

`array` 인수는 배열의 다른 요소에 접근하려는 경우, 특히 배열을 참조하는 기존 변수가 없는 경우에 유용합니다. 다음 예제에서는 먼저 `filter()`를 사용하여 양수 값을 추출한 다음 `findIndex()`를 사용하여 이웃 요소보다 작은 첫 번째 요소를 찾습니다.

```js
const numbers = [3, -1, 1, 4, 1, 5, 9, 2, 6];
const firstTrough = numbers
.filter((num) => num > 0)
.findIndex((num, idx, arr) => {
// arr 인수가 없으면 변수로 저장하지 않고 중간에 생성된
// 배열에 쉽게 접근할 수 있는 방법은 없습니다.
if (idx > 0 && num >= arr[idx - 1]) return false;
if (idx < arr.length - 1 && num >= arr[idx + 1]) return false;
return true;
});
console.log(firstTrough); // 1
```

### 희소 배열에서 findIndex() 사용하기

희소 배열에서 `undefined`를 검색하고 빈 슬롯의 인덱스를 얻을 수 있습니다.
Expand All @@ -87,13 +95,14 @@ console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
```

### findIndex()를 배열이 아닌 객체에 호출하기
### 배열이 아닌 객체에 findIndex() 호출하기

`findIndex()``this``length` 속성을 읽은 다음 각 정수 인덱스에 액세스합니다.
`findIndex()``this``length` 속성을 읽은 다음 음수가 아니면서 `length`보다 작은 각 정수 속성에 접근합니다.

```js
const arrayLike = {
length: 3,
"-1": 0.1, // -1 < 0 이기 때문에 findIndex() 가 이를 무시합니다.
0: 2,
1: 7.3,
2: 4,
Expand All @@ -113,8 +122,8 @@ console.log(

## 같이 보기

- [Polyfill of `Array.prototype.findIndex` in `core-js`](https://github.com/zloirock/core-js#ecmascript-array)
- [Indexed collections](/ko/docs/Web/JavaScript/Guide/Indexed_collections)
- [`core-js`에서의 `Array.prototype.findIndex` 폴리필](https://github.com/zloirock/core-js#ecmascript-array)
- [인덱스 기반 컬렉션](/ko/docs/Web/JavaScript/Guide/Indexed_collections) 안내서
- {{jsxref("Array")}}
- {{jsxref("Array.prototype.find()")}}
- {{jsxref("Array.prototype.findLast()")}}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: TypedArray.prototype.findIndex()
slug: Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex
l10n:
sourceCommit: d9e66eca59d82c65166c65e7946332650da8f48f
---

{{JSRef}}

{{jsxref("TypedArray")}} 인스턴스의 **`findIndex()`** 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으면 -1을 반환합니다. 이 메서드는 {{jsxref("Array.prototype.findIndex()")}}와 같은 알고리즘을 가집니다.

{{EmbedInteractiveExample("pages/js/typedarray-findindex.html")}}

## 구문

```js-nolint
findIndex(callbackFn)
findIndex(callbackFn, thisArg)
```

### 매개변수

- `callbackFn`
- : 형식화 배열의 각 요소마다 실행할 함수입니다. 일치하는 요소가 발견되었음을 나타내는 [참 같은 값](/ko/docs/Glossary/Truthy)을 반환하고 그렇지 않으면 [거짓같은 값](/ko/docs/Glossary/Falsy)을 반환해야합니다. 함수는 다음과 같은 인수와 함께 호출됩니다.
- `element`
- : 형식화 배열에서 처리 중인 현재 요소입니다.
- `index`
- : 형식화 배열에서 처리 중인 현재 요소의 인덱스입니다.
- `array`
- : `findIndex()` 함수가 호출된 형식화 배열입니다.
- `thisArg` {{optional_inline}}
- : `callbackFn`을 실행할 때 `this`로 사용할 값입니다. [순회 메서드](/ko/docs/Web/JavaScript/Reference/Global_Objects/Array#iterative_methods)를 참고하세요.

### 반환 값

테스트를 통과하는 첫 번째 요소의 인덱스입니다. 일치하는 요소가 없으면 `-1`을 반환합니다.

## 설명

보다 자세한 설명은 {{jsxref("Array.prototype.findIndex()")}}을 참고하시기 바랍니다. 이 메서드는 범용 메서드가 아니며 오직 형식화 배열 인스턴스에서만 호출할 수 있습니다.

## 예제

### 형식화 배열에서 소수의 색인 찾기

다음 예제에서는 배열에서 소수인 첫번째 요소의 인덱스를 찾습니다. 소수가 없으면 -1을 반환합니다.

```js
function isPrime(element, index, array) {
let start = 2;
while (start <= Math.sqrt(element)) {
if (element % start++ < 1) {
return false;
}
}
return element > 1;
}

const uint8 = new Uint8Array([4, 6, 8, 12]);
const uint16 = new Uint16Array([4, 6, 7, 12]);

console.log(uint8.findIndex(isPrime)); // -1, 찾을 수 없음
console.log(uint16.findIndex(isPrime)); // 2
```

## 명세서

{{Specifications}}

## 브라우저 호환성

{{Compat}}

## 같이 보기

- [`core-js`에서의 `TypedArray.prototype.findIndex` 폴리필](https://github.com/zloirock/core-js#ecmascript-typed-arrays)
- [JavaScript 형식화 배열](/ko/docs/Web/JavaScript/Guide/Typed_arrays) 안내서
- {{jsxref("TypedArray")}}
- {{jsxref("TypedArray.prototype.find()")}}
- {{jsxref("TypedArray.prototype.findLast()")}}
- {{jsxref("TypedArray.prototype.findLastIndex()")}}
- {{jsxref("TypedArray.prototype.indexOf()")}}
- {{jsxref("TypedArray.prototype.lastIndexOf()")}}
- {{jsxref("Array.prototype.findIndex()")}}

0 comments on commit 534d4a0

Please sign in to comment.