나는 node.js 프로젝트에서 lodash/underscore를 열렬히 사용하고 있으며 반복적으로 반복해야하는 상황에 처하게됩니다. 오른쪽에서 배열 (모든 통화 동기 것으로 가정) 아래의 코드와 유사한 방식으로 왼쪽으로 :언더 코어/로다시를 사용하여 자바 스크립트에서 비 돌연변이 역 테일을 수행하는 가장 좋은 방법
function makeDir(pathArray) {
var unsulliedPath = clone(pathArray);
var lastGuy = pathArray.pop();
var restOfEm = pathArray;
if dirExists(unsulliedPath) {
console.log("Your job is done!");
} else {
makeDir(restOfEm);
makeDir(unsulliedPath);
}
}
그러나, 복제하고 pathArray 인수 버그에게 나를 돌연변이 가졌어요. 그래서 나는이 작업을 수행 할 수 있습니다 :
function makeDir(pathArray) {
var lastGuy = _.last(pathArray);
// EITHER I could...
var restOfEm = _(pathArray).reverse().tail().reverse().value();
// OR I could do...
var restOfEm = _.first(pathArray, pathArray.length - 1);
if dirExists(pathArray) {
console.log("Your job is done!");
} else {
makeDir(restOfEm);
makeDir(pathArray);
}
}
좋아, 그 전달 된 인수를 복제 할 필요를 돌봐 주문, 그래도 약간 못생긴 밑줄 그..
lodash/밑줄에는 _.rest()의 역함수를 얻는 더 간단하고 명확한 방법, 즉 마지막 요소를 제외한 모든 요소가 포함되어 있습니까? 그렇지 않다면 Javascript에서 lodash/underscore 스타일의 함수 라이브러리와 함께 사용하기 위해이 메서드를 구현하는 데 선호되는 관용적 솔루션이 있습니까? 아니면 간단히이 피킹입니까?
미리 감사드립니다. 내 질문에서 눈부신 누락 또는 오류가 있으면 사과드립니다.
보인다. 'mkdirp' 패키지를 사용하지 않는 이유는 무엇입니까? – tkone
이것은 매우 좋은 질문입니다. 파일 시스템 트리의 폴더와 파일이 문서 DB의 문서와 일치하는 시스템을 구축하고 있습니다./foo/bar/pictures 디렉토리의 모든 그림은/foo/bar/pictures 디렉토리와 마찬가지로 메타 데이터가있는 mongo 문서를 가지고 있습니다. 파일/폴더 자체는 물론 디렉토리 디렉토리의 문서가 있는지 확인하려고합니다. 희망은 내 생각에 대해 괜찮은 설명 이네. : 3 – Chazu
이것은 당신을 위해 검증을하지 않습니다 - 이것은 단지 디렉토리가 생성되도록합니다. mkdirp를 사용할 수도 있고, 파일을 쓸 때마다 목록과 비교하여 파일을 검증 할 수 있습니다. 거래가 끝나면 확인되지 않은 항목을 확인하십시오. – tkone