종종 나는 첫 번째 인수 (항목 값) 만 통과하여 (키/인덱스와 반복자를 제외하고) 반복 함수가 오버로드되지 않도록하기 위해 map
반복자에서 강제 단항을 원한다.로다시/밑줄을 어떻게 강제합니까?
나는이 필요한 상황의 예는 다음과 같다 :
var parts = [
'projectIds',
[ 1, 6, 7 ],
'properties',
[ 'name', 'startDate' ]
];
function pathFrom(parts){
return _(parts)
// This is the tricky bit:
.map(_.partialRight(_.result, 'toString'))
.join('/')
.valueOf();
};
alert(pathFrom(parts));
내 원하는 출력이 projectIds/1,6,7/properties/name,startDate
하지만 반복 지수는 전달과 값에서 뜯어 낸 때문에 실제로, p/6/o/
로 끝 (p
은 'projectIds'[0]
, 6
은 [1,6,7][1]
, o
은 'properties'[2]
등)이다.
첫 번째 인수 만 가져오고 나머지는 삭제되도록지도 반복기의 상태를 잠 그려면 어떻게해야합니까?
왜 'partialRight'과'result'를 사용하고 있습니까? – Bergi
@Bergi 필자는 '숟가락이 없다'는 것을 의미한다고 가정합니다. 덕분에 항목은 'join'을 통해 toString으로 강요됩니다. 위의 코드는 단순화 된 예입니다. 실제 체인은 나중에 RegExp를 사용합니다. – Barney
아니, 나는 당신이 어떻게 그것들을 전혀 사용하고 싶지 않은지 이해하지 못했다. 나는'result'가 함수를 리턴하는 대신 메소드를 호출한다는 사실을 잊어 버렸습니다. 지금은 점점 명확 해지고 있습니다. – Bergi