English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript에서 Object 값 병합 방법의 자세한 설명

서론:일상 개발 작업에서는 js 객체의 모든 값을 복사하는 작업을 만날 수 있으며, electron을 통해 클라이언트를 개발하고, 업데이트할 때 설정 병합 문제에 직면할 수도 있습니다. 이에 대한 간단한 해결책을 설명하겠습니다.

소개: 예를 들어 obj1, obj2우리는 obj를1중 obj와2중 동일 필드 동일 깊이의 값을 obj에 복사해야 합니다2및 obj2필드 구조는 변경되지 않으며, 이 메서드를 호출하면 됩니다(ES6쓰기 방법)。

코드:

/**
     * src에 있는 데이터를 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]
          }
        }
      }
    ,

이것이 본 문서의 전체 내용입니다. 여러분의 학습에 도움이 되길 바라며, 갈려쳐 가이드를 많이 지지해 주시기를 바랍니다.

성명: 본 내용은 인터넷에서 가져왔으며, 저작권자는 본 사이트가 소유하지 않으며, 인터넷 사용자가 자발적으로 기여하고 업로드한 내용입니다. 저작권 침해가 의심되는 내용이 있으면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com(보내는 이메일에서 #을 @으로 변경하시오. 신고를 하시고 관련 증거를 제공하시면, 사이트는 즉시 저작권 침해 내용을 삭제합니다.

좋아하는 것