>  기사  >  웹 프론트엔드  >  JS 개체 값을 병합하는 방법

JS 개체 값을 병합하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-14 09:14:372357검색

이번에는 JS의 Object 값을 병합하는 방법과 JS의 Object 값을 병합할 때 주의사항에 대해 설명하겠습니다.

머리말: 일상적인 개발 작업에서 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]
          }
        })
      }
    },

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

JS의 의사 배열 사용에 대한 자세한 설명

JS는 클라이언트 유형을 어떻게 결정합니까?

위 내용은 JS 개체 값을 병합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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