Javascript에서는 데이터 집합에 대해 작업을 수행 할 배열 집합이 있고 때로는 모든 배열을 포함하지 않고 조합을 포함하려는 경우에 시나리오를 처리하는 가장 좋은 방법은 무엇입니까?프로그래밍 무지 프로그래밍
내 배열은이 작은 스 니펫 L, C, H, V, B, A, S로 레이블되어 있으며,이 코드는 약 2,500 줄에 해당합니다. (이 게시물에서 코드 노트를 제거한)
if(C[0].length>0){
L=L[1].concat(+(MIN.apply(this,L[0])).toFixed(7));
C=C[1].concat(C[0][0]);
H=H[1].concat(+(MAX.apply(this,H[0])).toFixed(7));
V=V[1].concat((V[0].reduce(function(a,b){return a+b}))/(V[0].length));
B=B[1].concat((MAX.apply(this,B[0])-MIN.apply(this,B[0]))/2);
A=A[1].concat((MAX.apply(this,A[0])-MIN.apply(this,A[0]))/2);
D=D[1].concat((D[0].reduce(function(a,b){return a+b}))/(D[0].length));
S=S[1].concat((S[0].reduce(function(a,b){return a+b}))/(S[0].length));
}
그것은 비생산적 쓰레기로이 경우 각 루프 또는 코드 섹션에 요청 부울 조건의 톤 코드가 배열이 작업에 포함 된 경우 보인다
인라인 조건을 사용하여 각 루프 반복을 묻는 것이 훨씬 어리 석다. 이렇게하면 처리 속도가 느려지고 코드가 미로 또는 토끼 구멍처럼 보이게됩니다. 옵션을 false
로 설정된 경우
는 지시를 무시하거나 생략 할 수있는 논리적 방법/라이브러리는 지금까지 함께 온 모든var op=[0,1,1,0,0,0,0,0]; //options
var L=[],C=[],H=[],V=[],B=[],A=[],D=[],S=[];
op[0]&&[L[0]=1];
op[1]&&[C[0]=1,console.log('test, do more than one thing')];
op[2]&&[H[0]=1];
op[3]&&[V[0]=1];
op[4]&&[B[0]=1];
op[5]&&[A[0]=1];
op[6]&&[A[0]=1];
그것은 작동 가지 의미가 인라인 일이 있습니까 옵션에서 요구하는대로 C[0]
과 H[0]
을 1로 설정하지만 루프 내에서 수행 될 수 있으므로 루프 반복마다 7 가지 질문을해야하므로 실패합니다. 루프 또는 코드 섹션의 7 가지 버전을 만드는 대신 각 루프 내부에 질문을하는 대신 다른 스타일/방법이 있습니까?
나는 또한 내가 어떤 점에서 다음 배열을 만드는 경우가 NaN 동일보다는 정의되지 않은하거나 콘솔 내가 따뜻해지고
var L=[],C=[],H=[],V=[],B=[],A=[],D=[],S=[];
L=NaN;
L[0]=1;
//1
console.log(L); //NaN
L=undefined;
L[0]=1
//TypeError: Cannot set property '0' of undefined
L=null
L[0]=1
//TypeError: Cannot set property '0' of null
암을 불평하지 않는 널 (null) 것으로 나타났습니다? 나는 수학이 수행되고 있지만 저장되지 않았기 때문에 L[0]
에서 약간의 수학을 수행했다면 실제로는 무시되지 않도록 라인이 무시된다고 가정합니다.
NaN은 숫자입니다. L을 다른 임의의 수, L [0] = 1로 설정하면 똑같은 일이 발생합니다. – Winchestro
정말 의도를 얻기가 어렵습니다. 코딩 스타일은 매우 이국적이지만 좋은 방식은 아닙니다. "더 이상 읽지 않고, 디버그하고, 장기적으로 유지 관리해야합니다"라는면에서 더욱 그렇습니다. 특정 질문이 있으시거나 체크 아웃을 원할 것입니다. – Winchestro
이 질문은, 초기 옵션을 지속적으로 참조하지 않고 초기 옵션을 기반으로 동작을 유지하는 방법은 무엇입니까? – 8DK