홈>
길이가 다른 두 객체 배열을 병합하는 작업 기능이 있습니다 (소스>세 가지 조건에서 목표 :
<올>내 질문은이 코드를 더 얇고 효율적으로 변경하려면 어떻게해야합니까? 코드를 보면 많은 계산 리소스가 필요한 것 같습니다.
배열을 연결하고 while 루프를 통해 실행하려고했지만 어떤 객체가 어떤 배열에 속하는지 구별하는 방법을 알 수 없었습니다.
let target = [
{ id:1, x: 50 },
{ id:2, x: 30 },
{ id:3, x: 30 }
];
let source = [
{ id:1, x: 30 },
{ id:2, x: 13 },
{ id:4, x: 100 },
{ id:5, x: 5 }
];
let arrayResult = [];
function compute( target, source ) {
for (let i = 0; i < source.length; i++ ) {
let srcObj = source[i];
let tarObj = target.find(d => d.id === srcObj.id)
if (tarObj) {
let result = {
id: srcObj.id,
x: srcObj.x - tarObj.x
}
arrayResult.push(result);
} else {
arrayResult.push(srcObj);
}
}
for( let i = 0; i < target.length; i ++ ) {
let src = target[i];
let tar = arrayResult.find(d => d.id === src.id);
if (!tar){
arrayResult.push(src)
}
}
}
compute(target, source);
console.log(arrayResult);
- 답변 # 1
관련 자료
- javascript - 중복없이 임의의 수의 객체 배열을 병합하는 방법은 무엇입니까?
- python - 데이터 프레임을 병합하고 값을 채우는 방법
- c++ - 반복 오류 중간에 벡터에 객체 추가
- sql - 서로 다른 테이블 항목의 배열을 병합하는 방법은 무엇입니까?
- javascript - React에서 Object의 입력 값을 표시하는 방법
- javascript - 쉼표를 추가하지 않고 객체를 문자열로 변환하는 방법은 무엇입니까?
- typescript - 속성 값을 기반으로 개체 유형 가져 오기
- c++ - 두 배열을 함께 추가하고 세 번째 배열로 인쇄
- python - 사전에서 키를 삭제하지만 해당 값 추가
- 앵귤러 매트 칩에서 새 값과 중복 값을 추가하는 것을 어떻게 중지 할 수 있습니까?
- javascript - Reactjs를 사용하여 동적으로 입력 값 추가, 삭제 및 편집
- javascript - 순서가 중요한 두 객체 배열의 객체 키 매핑
- python - 튜플 값을 함께 더하기
- asp.net core - ReadFromJsonAsync는 Null 값이있는 개체 속성을 반환합니다
- PHP 배열을 병합하여 명명 된 키 및 고유 값 생성
- javascript - 키 배열 및 값 배열에서 객체 생성
- javascript - React에서 객체의 개별 키 값을 나열하는 방법
- 배열을 반복하여 하나의 JavaScript 객체로 결합하는 방법은 무엇입니까?
- javascript - 개체 내부에 HTML 요소 추가
- javascript - 값을 개체로 병합
배열 매핑을 생성하여보다 효율적으로 만들 수 있습니다
id
의 가치source
배열의 색인에. 그런 다음 반복 할 수 있습니다target
, 각 객체가 있는지 확인id
값은srcids
배열, 그렇다면 해당 업데이트source
x
그렇지 않으면 객체를source
정렬: