JavaScript에 마지막 방법이없는 이유는 무엇입니까? [닫은]
JavaScript Array 클래스가 배열의 마지막 요소를 검색하는 마지막 메소드를 제공하지 않는 것이 이상합니다. 나는 해결책이 간단하다는 것을 알고 있지만 (Ar [Ar.length-1]), 그러나 여전히 너무 자주 사용됩니다.
이것이 아직 통합되지 않은 심각한 이유는 무엇입니까?
자바 스크립트가 매우 느리게 변경되기 때문입니다. 사람들이 브라우저를 느리게 업그레이드하기 때문입니다.
많은 Javascript 라이브러리는 자체 last()
기능을 구현 합니다. 하나를 사용하십시오!
다음과 같이 할 수 있습니다 :
[10, 20, 30, 40].slice(-1)[0]
console.log([10, 20, 30, 40].slice(-1)[0])
언어에 추가 할 수있는 도우미 메서드의 양은 무한합니다. 나는 그들이 이것을 추가하는 것을 고려하지 않았다고 생각합니다.
직접 정의하는 것은 쉽습니다. 이것이 JavaScript의 힘입니다.
if(!Array.prototype.last) {
Array.prototype.last = function() {
return this[this.length - 1];
}
}
var arr = [1, 2, 5];
arr.last(); // 5
그러나 이로 인해 for..in
루프를 잘못 사용하여 배열을 반복 하는 타사 코드에 문제가 발생할 수 있습니다 .
그러나 브라우저 지원 문제에 얽매이지 않으면 새로운 ES5 구문을 사용하여 속성 을 정의 하면 함수를 열거 할 수 없도록하여 해당 문제를 해결할 수 있습니다.
Object.defineProperty(Array.prototype, 'last', {
enumerable: false,
configurable: true,
get: function() {
return this[this.length - 1];
},
set: undefined
});
var arr = [1, 2, 5];
arr.last; // 5
i = [].concat(loves).pop(); //corn
아이콘 고양이 팝콘을 사랑
또 다른 옵션, 특히 이미 UnderscoreJS를 사용중인 경우 다음과 같습니다.
_.last([1, 2, 3, 4]); // Will return 4
Array.prototype.last = Array.prototype.last || function() {
var l = this.length;
return this[l-1];
}
x = [1,2];
alert( x.last() )
이 질문에 대한 답을 직접 찾으러 왔습니다. 슬라이스 답변이 가장 좋을 수도 있지만, 계속해서 프로토 타입 확장을 연습하기 위해 "마지막"기능을 만들었으므로 공유하고 공유 할 것이라고 생각했습니다. 선택적으로 배열을 거꾸로 세어보고 두 번째에서 마지막으로 또는 세 번째에서 마지막으로 항목을 가져 오는 다른 이점에 비해 추가 이점이 있습니다. 카운트를 지정하지 않으면 기본적으로 1로 설정되고 마지막 항목을 가져옵니다.
Array.prototype.last = Array.prototype.last || function(count) {
count = count || 1;
var length = this.length;
if (count <= length) {
return this[length - count];
} else {
return null;
}
};
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.last(); // returns 9
arr.last(4); // returns 6
arr.last(9); // returns 1
arr.last(10); // returns null
마지막 요소를 슬라이스하는 또 다른 간단한 방법이 있습니다.
var tags = [1, 2, 3, "foo", "bar", "foobar", "barfoo"];
var lastObj = tags.slice(-1);
lastObj
지금 ["barfoo"]
입니다.
파이썬은이 같은 방식으로 JS를 사용하려고 시도했을 때 효과가있었습니다. 스크립트 언어의 문자열 조작이 같은 방식으로 작동한다고 생각합니다.
마찬가지로 배열에서 마지막 두 객체를 원한다면
var lastTwoObj = tags.slice(-2)
당신 ["foobar", "barfoo"]
등 을 줄 것 입니다.
pop()
method will pop the last value out. But the problem is that you will lose the last value in the array
Yeah, or just:
var arr = [1, 2, 5];
arr.reverse()[0]
if you want the value, and not a new list.
참고URL : https://stackoverflow.com/questions/3235043/why-doesnt-javascript-have-a-last-method
'development' 카테고리의 다른 글
Android 기기에서 SQLite 데이터베이스를 보려면 어떻게합니까? (0) | 2020.07.07 |
---|---|
C ++에서 메모리 누수를 피하기위한 일반 지침 (0) | 2020.07.07 |
n 초마다 특정 코드 실행 (0) | 2020.07.07 |
Xcode 8-누락 된 파일 경고 (0) | 2020.07.07 |
위도 / 경도 좌표를 일치시키기위한 정규식? (0) | 2020.07.07 |