축소 작업을 사용하여 객체 작업
P粉423694341
P粉423694341 2023-08-18 14:05:11
0
1
422

이것은 내 입력입니다:{field1: {field2:'123', field3:{field4:'123'}}}

대상은 다음과 같습니다:{field1: {update: {field2:'123', field3: {update: {field4:'123'}}

제가 시도한 방법은 다음과 같습니다.

function updateDictHelper(obj) { Object.entries(obj).reduce((updateClause = {}, [키, 값]) => { if (값 유형 !== '객체') { return {... updateClause, [키]: 값} } 또 다른 { return {... updateClause, [키]: {업데이트: updateDictHelper(값)}} } }) }

하지만 무슨 일이 있어도 작동시킬 수가 없습니다. 저는 Java/TypeScript를 처음 접했고 도움을 주시면 대단히 감사하겠습니다.

P粉423694341
P粉423694341

모든 응답 (1)
P粉909476457

두 가지 질문이 있습니다. 첫 번째 질문은 귀하의updateDirectHelper函数没有返回任何内容。虽然在这个函数中有一个return语句,但实际上它是嵌套在reduce的回调函数(updateClause, [key, value]) => {中,而不是updateDictHelper자체에 관한 것입니다.

또 다른 질문은acc提供默认值。Reduce原生支持可选的第二个参数,该参数将作为acc의 초기 값을 구하는 방법입니다.

으아악

가장 좋은 접근 방식은 가능할 때마다 초기 값을 제공하는 것입니다. 포함하지 않으면.reduce()将跳过回调的第一个调用,并从将acc设置为数组中的第一个值开始调用回调函数,并将第二个参数设置为数组中的第二个值。如果您的数组只有一个值,例如在您的情况下,那么这个单个值就是从.reduce()调用中返回的值,并且您的.reduce()의 콜백 함수가 호출되지 않습니다.

으아악
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!