이 글에서는 주로 JavaScript의 객체 값 병합 방법을 자세히 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
머리말: 일상적인 개발 작업에서 js의 객체에 있는 모든 값이 복사되는 것을 접할 수도 있고, 전자를 통해 클라이언트를 개발하고 수정 시 병합 설정 문제에 직면할 수도 있습니다. 따라서 이 글에서는 이 문제에 대한 간략한 해결책을 제시할 것입니다.
소개: 예를 들어 obj1과 obj2가 있는 경우 obj2에서 동일한 필드와 동일한 깊이를 가진 obj1의 모든 값을 obj2에 복사해야 하며 obj2 필드 구조를 변경하지 않고 유지해야 합니다. 메소드를 호출합니다(ES6 작성 메소드 사용).
코드:
/** * 将src中的数据copy到dist中,并保留dist的结构 * @param src * @param dist */ copyValue(src, dist) { if (!src || typeof(src) !== 'object' || typeof(dist) !== 'object'){ return ; } let keys = Object.keys(dist) if (keys && keys.length > 0 && isNaN(keys[0])){ keys.forEach(key => { let value = dist[key] let srcVal = src[key] // 判断是不是对象,如果是则继续遍历,不是则开始赋值或忽略 if (value !== undefined && typeof(value) === 'object' && srcVal && typeof(srcVal) === 'object' && srcVal[0] === undefined){ copyValue(srcVal, value) } else if (value !== undefined && srcVal && typeof(value) == typeof (srcVal)){ // 如果源数据存在,并且类型一致,则开始赋值 dist[key] = src[key] } }) } },
관련 권장 사항:
Java에서 일반 및 개체 메서드 사용에 대한 자세한 설명
Javascript에서 object.extend 정적 메서드 사용에 대한 자세한 설명
위 내용은 JavaScript의 객체 값 병합 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!