자바스크립트에서 Array.any?와 동등한 것은 무엇입니까?
비어 있으면 true 또는 false를 반환하는 자바스크립트를 위한 방법을 찾고 있습니다...루비 같은 것any?
아니면empty?
[].any? #=> false
[].empty? #=> true
자바스크립트 네이티브 메소드는 사용자가 원하는 것을 정확히 수행합니다.
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true
자바스크립트의 메소드는 다음과 같습니다.
[1, 2, 3].some((num) => num % 2 === 0);
돌아온다true
배열에 적어도 하나의 짝수가 있기 때문입니다.
일반적으로 자바스크립트의 표준 라이브러리에 있는 클래스는 루비의 Enumerable에 비해 상당히 열악합니다.없습니다.isEmpty
방법과.some()
함수를 전달해야 합니다 그렇지 않으면undefined is not a function
오류. 당신은 당신 자신을 정의할 수 있습니다..isEmpty()
뿐만 아니라.any()
루비의 이런 모습에 더 가깝습니다.
Array.prototype.isEmpty = function() {
return this.length === 0;
}
Array.prototype.any = function(func) {
return this.some(func || function(x) { return x });
}
언더스코어.js나 lodash와 같은 라이브러리는 이러한 도우미 메소드를 제공합니다. 루비의 수집 메소드에 익숙하다면 프로젝트에 이 메소드를 포함시키는 것이 타당할 수도 있습니다.
파티에 좀 늦었지만...
[].some(x => !!x)
var a = [];
a.length > 0
저는 그냥 길이만 확인하겠습니다.원한다면 도우미 방식으로 포장할 수도 있습니다.
이것이 가장 깨끗하고 읽을 수 있는 옵션이라고 생각합니다.
var empty = [];
empty.some(x => x); //returns false
자바스크립트 배열은 어떤 의미에서는 배열 길이가 0이 아닌 경우에도 "빈" 상태가 될 수 있습니다.예를 들어,
var empty = new Array(10);
var howMany = empty.reduce(function(count, e) { return count + 1; }, 0);
변수 "How Many"는 다음과 같이 설정됩니다.0
, 비록 배열이 다음의 길이를 갖도록 초기화되었지만.10
.
따라서 많은 배열 반복 함수가 실제로 값이 할당된 배열의 요소에만 주의를 기울이기 때문에 이 호출과 같은 것을 사용하여 다음을 수행할 수 있습니다..some()
배열에 실제로 무언가가 있는지 확인하려면:
var hasSome = empty.some(function(e) { return true; });
콜백은 다음으로 넘어갔습니다..some()
돌아올 것입니다true
호출될 때마다 반복 메커니즘이 검사할 가치가 있는 배열의 요소를 찾는다면 결과는true
.
그냥 사용.Array.length
:
var arr = [];
if (arr.length)
console.log('not empty');
else
console.log('empty');
MDN 참조
정말로 문제가 되고 싶다면 프로토타입에 새로운 방법을 추가합니다.
if (!('empty' in Array.prototype)) {
Array.prototype.empty = function () {
return this.length === 0;
};
}
[1, 2].empty() // false
[].empty() // true
당신이 원하는 것은.empty
것은 아니다..empty()
루비를 완벽하게 모방합니다.
Object.defineProperty( Array.prototype, 'empty', {
get: function ( ) { return this.length===0 }
} );
그리고나서
[].empty //true
[3,2,8].empty //false
어떤 것이든, 여기서 내 대답을 보세요.
폴리필* :
Array.prototype.any=function(){
return (this.some)?this.some(...arguments):this.filter(...arguments).reduce((a,b)=> a || b)
};
루비라고 부르고 싶다면, 그 의미는.any
것은 아니다..any()
, 사용:
Object.defineProperty( Array.prototype, 'any', {
get: function ( ) { return (this.some)?this.some(function(e){return e}):this.filter(function(e){return e}).reduce((a,b)=> a || b) }
} );
__
`* : https://en.wikipedia.org/wiki/Polyfill
배열에 길이 속성이 있습니다.
[].length // 0
[0].length // 1
[4, 8, 15, 16, 23, 42].length // 6
주석 중 하나에서 제안한 것처럼 배열에 요소가 포함되어 있는지 확인하는 것은 일부 요소를 간단히 사용하여 수행할 수 있습니다.
let hasItems = array.some(x => true);
let isEmpty = !array.some(x => true);
3항 연산자만 사용
let myArray = []
myArray && myArray.length ? console.log(true) : console.log(false)
언급URL : https://stackoverflow.com/questions/28350292/what-is-the-equivalent-of-array-any-in-javascript
'prosource' 카테고리의 다른 글
PHP에서 워드프레스 숏코드 스타일 함수를 만드는 방법 (0) | 2023.10.05 |
---|---|
특정 양식을 제출한 후 여러 양식에서 결합된 입력 데이터를 타사로 전송하는 Gravity Forms (0) | 2023.10.05 |
.NET 웹 API 2 OWIN 베어러 토큰 인증 (0) | 2023.10.05 |
Excel NORMINV 기능을 수행할 C# 라이브러리가 있습니까? (0) | 2023.10.05 |
사용자 지정 버튼이 있는 AngularJsng-grid (0) | 2023.10.05 |