>  기사  >  웹 프론트엔드  >  JavaScript를 사용할 때 개체 값을 병합하는 방법에 대해

JavaScript를 사용할 때 개체 값을 병합하는 방법에 대해

亚连
亚连원래의
2018-06-19 09:48:201496검색

이 글에서는 주로 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]
          }
        })
      }

    },

위 내용은 제가 모두를 위해 정리한 내용입니다. 앞으로 모든 분들께 도움이 되길 바랍니다.

관련 기사:

JavaScript를 사용하여 계산기를 구현하는 방법

Angular를 사용하여 테이블 필터링을 구현하는 방법

Vue.js가 무한 스크롤 로딩을 구현하는 방법

Chrome Firefox에는 디버깅 도구가 포함되어 있습니다( 세부 튜토리얼)

JS를 사용하여 Ajax 요청 함수를 작성하는 방법

vue-cli+webpack을 사용하여 vue를 빌드하는 방법

JS를 사용하여 여러 스크롤 막대를 제어하여 동기적으로 스크롤하는 방법

Webpack 프레임워크 (핵심 기술 마스터)

webpack+express를 사용하여 다중 페이지 사이트 개발을 달성하는 방법

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

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