반응형
CoffeeScript에서 객체의 키와 값을 반복하는 방법은 무엇입니까?
객체 (일반 자바 스크립트 객체라고도하는 "연관 배열")가 있습니다.
obj = {}
obj["Foo"] = "Bar"
obj["bar"] = "Foo"
obj
다음과 같이 CoffeeScript를 사용하여 반복하고 싶습니다 .
# CS
for elem in obj
bu 위의 CS 코드는 JS로 컴파일됩니다.
// JS
for (i = 0, len = obj.length; i < len; i++)
이 경우에는 적합하지 않습니다.
JavaScript 방식
for(var key in obj)
이지만 지금 은 궁금합니다.
CoffeeScript에서 어떻게 할 수 있습니까?
사용하십시오
for x,y of L
.
.
ages = {}
ages["jim"] = 12
ages["john"] = 7
for k,v of ages
console.log k + " is " + v
출력
jim is 12
john is 7
for own k,v of ages
주석에서 Aaron Dufour가 언급 한 변형을 고려할 수도 있습니다 . 프로토 타입에서 상속 된 속성을 제외하는 검사를 추가합니다.이 예제에서는 문제가되지 않지만 다른 것들을 기반으로 구축하는 경우가 있습니다.
배열을 초기화하고 있지만 객체처럼 사용하고 있습니다 (js에는 "associative array"가 없습니다). 객체를 반복 할 때 다음과 같은 구문을 사용하십시오.
for key, val of arr
console.log key + ': ' + val
단선 루프로 사용할 수있는 배열 이해를 사용하는 숏 핸드 버전입니다.
console.log index + ": " + elm for index, elm of array
배열 이해 :
"포괄 옵션은 선택적 가드 절과 현재 배열 인덱스의 값으로 for 루프를 대체하고 컴파일합니다. for 루프와 달리 배열 이해는 표현식이며 반환 및 할당 될 수 있습니다.",
규칙에 따라 arr은 배열이지만 "foo"는이 배열의 속성이며 인덱스 된 값이 아닙니다. 배열의 인덱스 값을 데이터에 저장하려면 다음을 작성해야합니다.
arr1 = []
arr1[0] = "Bar"
arr1[1] = "Foo"
또는 연관 배열을 원하면 객체를 사용하십시오.
arr2 = {}
arr2["Foo"] = "Bar" // equivalent to arr2.foo="Bar"
arr2["bar"] = "Foo" // equivalent to arr2.bar="Foo"
arr1을 반복하려면 :
str = "values are : "
for val in arr2
str += val + " |"
console.log key + ': ' + val
반환 :
values are : Bar | Foo |
arr2를 반복 : "배열의 값"
for key, val of arr
console.log key + ': ' + val
다음을 반환합니다.
Foo : Bar
Bar : Foo
참고 URL :
반응형
'programing' 카테고리의 다른 글
grep에서 .svn 디렉토리 제외 (0) | 2020.05.14 |
---|---|
명령 행 PHP 스크립트에 대해 XDebug 프로파일 러를 트리거하는 방법은 무엇입니까? (0) | 2020.05.14 |
Aspect 지향 프로그래밍 vs. 객체 지향 프로그래밍 (0) | 2020.05.14 |
i ++와 ++ i의 차이점은 무엇입니까? (0) | 2020.05.13 |
Android에서 URI 빌더를 사용하거나 변수가있는 URL을 작성하십시오. (0) | 2020.05.13 |