Я попытался скопировать массив объектов, и я потерпел неудачу. Каждый раз, когда у меня заканчивался массив ссылок на исходный арай.JavaScript-копирование массивов объектов
Я попытался «.concat()», я использовал «для» для копирования каждого элемента отдельно, но каждый раз, когда я делал изменения во временном массиве, тоже менялся исходный массив.
Вот код.
Glossary:
tablicaZnacznikow - original array
placeholder - temporary array
tempClosest - id of closest marker
startingPointID - id of marker from witch i start calculation
.meta field - defines if marker has been added to polyline
var placeholder = tablicaZnacznikow.concat();
var tempArrayOfSomething = [placeholder[startingPointID].latLng];
for (var i = 0; i < placeholder.length; i++) {
var tempClosest = findClosestMarkerToAnotherMarker(placeholder, startingPointID);
tempArrayOfSomething.push(placeholder[tempClosest].latLng);
startingPointID = tempClosest;
placeholder[tempClosest].meta = "USED";
console.log(tempClosest);
}
Этот код используется для создания массива для создания пути для полилинии gMap3. Спасибо заранее.
Если присвоить объект другой переменной, вы не клонирования объекта, вместо этого, обе переменные будет содержать ту же ссылку на одни и те же данные в памяти. Поэтому вы должны клонировать объекты. См. Http://stackoverflow.com/q/122102/1529630 и http://stackoverflow.com/q/728360/1529630 – Oriol