크롬 확장 프로그램을 만들고 정렬 된 배열로 이상한 결과를 얻고 있습니다. "timearray"및 "timearrayorig"라는 두 개의 전역 배열이 있습니다 (timearray는 timearrayorig의 정렬 된 버전 임). 함수에서 나는 timearrayorig에 많은 값을 설정 한 다음 전체 배열을 timearray에 복사하고 timearray를 정렬합니다. 웬일인지, 이것도 timearrayorig를 정렬합니다. 누군가가 왜 그런지 설명 할 수 있다면 크게 감사하겠습니다. 연결된 배열을 만드는 배열 정렬?
for (var i = 0; i < triparray.length; i++) {
for (var j = 0; j < trainsfeed.length; j++) {
if (trainsfeed[j].getElementsByTagName('Trip')[0].childNodes[0].nodeValue == triparray[i]) {
if (timearrayorig.length < i + 1 || timearrayorig[i] > Number(trainsfeed[j].getElementsByTagName('Scheduled')[0].childNodes[0].nodeValue)) {
timearrayorig.push(Number(trainsfeed[j].getElementsByTagName('Scheduled')[0].childNodes[0].nodeValue));
}
}
}
}
timearray = timearrayorig;
//timearray.sort();
(trainsfeed 메시지와 triparray 의해 분리 된 XML의 무리는 "트립"필드. timearrayorig 및 timearray 모든 다른 값리스트의 요소로부터 triparray의 각 요소의 초기 배이다
이 스크립트를 실행하고 디버그 콘솔에서 timearrayorig 및 timearray 값을 찾으면 [1365801720, 1365801180, 1365801600, 1365802800, 1365800940]와 같이 동일합니다. 그러나 내가 Timearray를 분류하면 둘 다 [1365800940, 1365801180, 1365801600, 1365801720, 1365802800]이됩니다.
배열은 당신이 배열을 시도 복사 할 경우, 당신은 단지 배열의 참조를 할당 timearray하는 timearrayorig를 할당 할 때 그렇게 참조 형이다 슬라이스 방법 – Givi