티스토리 뷰

설명하는 코드가 필요하면 잘못 작성되었다는 신호일 수 있습니다. 최소한 그와 같은 줄에는 그것을 설명하는 주석이 필요합니다.

대신 재 작성을 고려하십시오.

function dropElements(arr,func) {
    var start = arr.findIndex(func);
        if( start < 0) {
                // no match
                        return [];
                            }
                                else {
                                        return arr.slice(start);
                                            }
                                            }
                                            

두 번째 arr.length는 중복 된다는 점에 유의하십시오 .slice(). 달리 지정하지 않으면 어레이의 끝으로 슬라이스됩니다.

-------------------

다음과 같이 생각하십시오.

if(arr.findIndex(func) >= 0) {
    startI = arr.findIndex(func);
    } else {
        startI = arr.length;
        }
        endI = are.length;
        return arr.slice(startI, endI);
        

... 도움이 되나요? 기본적으로? ... :는 if else처럼 작동하며 전체 인수 뒤에 ..., 두 번째 인수가옵니다. 매우 혼란스럽고 사람들이 작업 순서를 명확히하기 위해 괄호를 사용하지 않는 것이 싫습니다.

-------------------

우리가 이것을 arr.slice(arr.findIndex(func) >= 0 ? arr.findIndex(func): arr.length, arr.length);나누면 : 우리는 얻을 것이다 : arr.slice(begin, end)어디

begin = arr.findIndex(func) >= 0 ? arr.findIndex(func): arr.lengthend = arr.length

그래서 이것은 begin주어진 배열의 끝 에서 슬라이스 할 것입니다

-------------------

브레이크 다운 :

arr.slice(
    arr.findIndex(func) >= 0 ? arr.findIndex(func) : arr.length, // First argument for slice method
        arr.length  // Second slide argument.
        );
        

이제 slise의 첫 번째 주장을 분석해 보겠습니다.

arr.findIndex(func) >= 0 ?   // If the call of arr.findIndex(func) it is greater than 0
arr.findIndex(func) :        // Then return the result of this method call
arr.length                   // Other wise return the length of the arr

따라서이 코드가하는 일은 첫 번째 삼항 연산자에서 반환 된 숫자에서 배열 길이까지 분할하는 배열을 시작하는 것입니다.



출처
https://stackoverflow.com/questions/39917119
댓글
공지사항
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30