>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 객체 값 병합 방법에 대한 자세한 설명

JavaScript의 객체 값 병합 방법에 대한 자세한 설명

小云云
小云云원래의
2017-12-23 14:32:461395검색

이 글에서는 주로 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 정적 메서드 사용에 대한 자세한 설명

Object param 속성의 정의

위 내용은 JavaScript의 객체 값 병합 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.