programing

이 두 어레이를 연결할 수 없는 이유는 무엇입니까?

prostudy 2022. 6. 25. 20:30
반응형

이 두 어레이를 연결할 수 없는 이유는 무엇입니까?

코드(Vuex 변환)는 다음과 같습니다.

export const CREATE_PANORAMAS = (state, panoramas) => {
  console.log('building.panoramas:', state.building.panoramas)
  console.log('panoramas:', panoramas)
  state.building.panoramas.concat(panoramas)
  console.log('result:', state.building.panoramas)
} 

그 결과, 다음의 각 로그가 표시됩니다.

[] // building.panoramas
[{ name: "", objectId: "5849133aac502e006c581b58" }] // panoramas
[] // result

두 어레이가 연결되지 않는 이유는 무엇입니까?

From documentation - concat() 메서드는 두 개 이상의 어레이를 Marge하기 위해 사용됩니다.이 메서드는 기존 어레이를 변경하지 않고 새 어레이를 반환합니다.

concat를 사용하는 한 가지 방법은 다음과 같습니다.

state.building.panoramas = state.building.panoramas.concat(panoramas)

아니면 간단하게

[].push.apply(state.building.panoramas, panoramas);

문제는 연결 결과를 에 할당하지 않는다는 것입니다.state.building.panoramas@JaromandaX에 의해 나타나는 배열입니다.

또한 rest 요소, 확산 요소, 할당 파괴 기능을 사용하여 두 개 이상의 어레이를 연결할 수도 있습니다.

[...state.building.panoramas] = [...state.building.panoramas, ...panoramas];

주(州)를 정해야 할 것 같아요building.sublicamas.concat(비밀번호)를 먼저 지정하거나 '결과' 행에 직접 추가할 수 있습니다.

sampleArray.concat(moreValues)는 연결된 배열을 반환하며 'moreValues'를 sampleArray 자체에 연결하지 않습니다.

언급URL : https://stackoverflow.com/questions/41034619/why-cant-i-concatenate-these-two-arrays

반응형