[javascript] 배열의 첫 번째 요소를 얻는 방법?

다음과 같이 배열에서 첫 번째 요소를 얻는 방법은 무엇입니까?

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

나는 이것을 시도했다 :

alert($(ary).first());

그러나 그것은 돌아올 것이다 [object Object]. 따라서 배열에서 첫 번째 요소를 가져와야 'first'합니다.



답변

이처럼

alert(ary[0])


답변

왜 바닐라 JavaScript 배열을 jQuery로 수정합니까? 표준 JavaScript를 사용하십시오!

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(ary[0]);

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

또한,
더 많은 jQuery가 필요하다

소스 , 보 빈스의 의례


답변

다른 상황에 따라 아래의 몇 가지 방법이 있습니다.

대부분의 경우 첫 번째 요소에 액세스하는 가장 간단한 방법은

yourArray[0]

그러나 [0]이 실제로 존재하는지 확인해야합니다.

실제 배열에 신경 쓰지 않고 색인이 존재하는지 확인하고 싶지 않은 경우 첫 번째 요소 또는 정의되지 않은 인라인을 얻으려는 실제 사례가 있습니다.

이 경우 shift () 메서드를 사용 하여 첫 번째 요소를 가져올 수 있지만이 메서드는 원래 배열을 수정하고 첫 번째 항목을 제거하고 반환해야합니다. 따라서 배열의 길이는 1 씩 줄어 듭니다. 이 방법은 첫 번째 요소를 가져와야하는 인라인 경우에 사용할 수 있지만 원래 배열은 신경 쓰지 않습니다.

yourArray.shift()

알아야 할 중요한 사항은 배열이 [0] 인덱스로 시작하는 경우 위의 두 옵션 만 옵션이라는 것입니다.

첫 번째 요소가 삭제 된 경우가 있는데, 예를 들어 yourArray [0]을 삭제하면 배열에 “구멍”이 남습니다. 이제 [0]의 요소는 정의되지 않았지만 첫 번째 “기존”요소를 가져 오려고합니다. 나는 이것에 대한 많은 실제 사례를 보았습니다.

따라서 배열과 첫 번째 키에 대한 지식이 없거나 첫 번째 키를 알고 있다고 가정하면 여전히 첫 번째 요소를 얻을 수 있습니다.

find () 를 사용 하여 첫 번째 요소를 얻을 수 있습니다 .

find ()의 장점은 조건을 만족하는 첫 번째 값에 도달하면 루프를 빠져 나가는 효율성입니다 (자세한 내용은 아래 참조). (널 또는 다른 빈 값도 제외하도록 조건을 사용자 정의 할 수 있습니다)

var firstItem = yourArray.find(x=>x!==undefined);

또한 filter ()를 여기에 먼저 복사에서 배열을 “수정”하고 원래 배열을 그대로 유지하면서 첫 번째 요소를 가져 오는 옵션으로 포함하고 싶습니다 .

여기에 filter ()를 포함시키는 또 다른 이유는 find () 이전에 존재했으며 많은 프로그래머가 이미 사용하고 있기 때문입니다 (find ()에 대한 ES5는 ES6 임).

var firstItem = yourArray.filter(x => typeof x!==undefined).shift();

filter ()는 실제로 효율적인 방법은 아니며 (filter ()가 모든 요소를 ​​통해 실행 됨) 다른 배열을 만듭니다. 예를 들어 forEach를 사용하는 경우 성능에 미치는 영향이 미미하므로 소규모 어레이에서 사용하는 것이 좋습니다.

(나는 어떤 사람들은 첫 번째 요소를 얻기 위해 루프를 위해 … 사용하는 것이 좋습니다 볼 수 있지만, 나는이 방법에 대해 추천 을 위해 … 배열을 통해 반복 사용하지 않아야의 인덱스 순서가 중요한 경우 는 아무튼 때문에 ‘ 브라우저가 대부분의 순서를 존중한다고 주장 할 수는 있지만 순서를 보장하지는 않지만 forEach는 문제를 해결할 수 없기 때문에 많은 제안 된 문제를 해결하지 못하며 모든 요소를 ​​통과하게됩니다. 루프 및 키 / 값 확인

find ()와 filter ()는 요소의 순서를 보장하므로 위와 같이 사용하는 것이 안전합니다.


답변

첫 번째 요소가 삭제 된 경우 인덱스 0의 요소가 없을 수 있습니다.

let a = ['a', 'b', 'c'];
delete a[0];

for (let i in a) {
  console.log(i + ' ' + a[i]);
}

jQuery없이 첫 번째 요소를 얻는 더 좋은 방법 :

function first(p) {
  for (let i in p) return p[i];
}

console.log( first(['a', 'b', 'c']) );


답변

ES6 파괴 사용

let [first] = [1,2,3];

어느 것과

let first = [1,2,3][0];


답변

가독성 을 유지하려면 항상 첫 번째 함수를 Array.protoype:

Array.prototype.first = function () {
    return this[0];
};

그런 다음 첫 번째 요소를 쉽게 검색 할 수 있습니다.

[1, 2, 3].first();
> 1


답변

당신은 그냥 사용할 수 있습니다 find() :

let first = array.find(Boolean);

또는 거짓 인 경우 에도 첫 번째 요소를 원하는 경우 :

let first = array.find(e => true);

추가 마일로 이동 :

가독성에 관심이 있지만 숫자 발생에 의존하고 싶지 않다면 내장 Array 객체 프로토 타입을 직접 수정하는 함정을 완화시키는 기능 을 정의 first()하여 추가 할 수 있습니다 ( 여기 설명 ).Array.protoypeObject​.define​Property()

성능은 꽤 좋지만 ( find()첫 번째 요소 다음에 멈춤) 완벽하거나 보편적으로 액세스 할 수있는 것은 아닙니다 (ES6 만 해당). 더 많은 배경을 보려면 @Selays answer를 읽으 십시오 .

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(e => true);     // or this.find(Boolean)
  }
});

그런 다음 첫 번째 요소를 검색하려면 다음을 수행하십시오.

let array = ['a', 'b', 'c'];
array.first();

> 'a'

실제로 볼 수있는 스 니펫 :

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(Boolean);
  }
});

console.log( ['a', 'b', 'c'].first() );