>  Q&A  >  본문

두 개의 동적 개체 배열 병합: 두 개의 동적 개체 배열을 하나로 병합합니다.

<p>아래 표시된 대로 두 개체의 동적 배열이 있습니다(이것은 n 개체의 동적 배열입니다). </p> <pre class="brush:php;toolbar:false;">serverArray = [ {"id":"field1","필수":false,"visible":false}, {"id":"field2","필수":false,"visible":false}, {"id":"field3","필수":false,"visible":false}, {"id":"field4","필수":false,"visible":false} ] 로컬 배열 = [ {"id":"field1"}, {"id":"field2","필수":false}, {"id":"field3","필수":true,"visible":false}, {"id":"field4","필수":false,"visible":true}, {"id":"field5","필수":false,"visible":true}, {"id":"field6","필수":true,"visible":false}, ]</pre> <p>두 배열을 다음과 같이 동일한 ID를 가진 개체로 병합했습니다. </p> <pre class="brush:php;toolbar:false;">for (let x = 0; x < serverArray.length; x++) { for (let y = 0; y < localArray.length; y++) { if (serverArray[x].id == localArray[y].id) { // serverArray[x].id/localArray[y].id = 'field1', 'field2' for (let key in localArray[y]) { //key = 'id', 'mandatory' 등 serverArray[x][key] = localArray[y].hasOwnProperty(key) ? localArray[y][key] : serverArray[x][key]; //최종 반환 응답에서 로컬 필드 속성 값(있는 경우)으로 재정의 } } } }</pre> <p>그러나 최종 <code>serverArray</code>에는 <code>serverArray</code>에 없는 ID도 포함하고 싶습니다(예: <code>field5</). 위의 code>, <code>field6</code>), 이러한 필드도 위 조건을 충족하지 못합니다(예: <code>serverArray[x].id == localArray[y].id</code>). 이 필드가 최종 <code>serverArray</code>의 일부로도 포함되기를 바랍니다. 즉, 최종 <code>serverArray</code>에는 다음 두 개체도 포함되어야 합니다. </p> <pre class="brush:php;toolbar:false;">{"id":"field5","mandatory":false,"visible":true}, {"id":"field6","필수":true,"visible":false},</pre> <p>이 요구 사항을 충족할 수 있는 방법이 있나요? </p>
P粉903969231P粉903969231429일 전453

모든 응답(1)나는 대답할 것이다

  • P粉330232096

    P粉3302320962023-08-19 13:04:50

    두 배열을 반복하는 동안 병합된 필드를 추적하기 위해 새 개체를 만들 수 있습니다. 초기 병합 후 localArray를 다시 반복하여 아직 serverArray에 병합되지 않은 필드를 식별하고 이를 병합된 결과에 추가할 수 있습니다.

    으아악

    회신하다
    0
  • 취소회신하다