[英]Why am I getting the same object pushed into my array?
我正在嘗試根據Yelp的回應建立一系列場所。 但是,在將我的數組傳遞並傳遞到回調中以返回后,我得到的是相同的4個地方,而不是4個唯一的地方。
let rawResult = arrayBusinesses.jsonBody.businesses;
let arrVenues = new Array();
// console.log(rawResult);
let venue = {
type: 'venue',
id: '',
latitude: null,
longitude: null,
title: '',
address: ''
// thumb_url: ''
};
for (let i = 0; i < 5; i++) {
console.log('i', i);
(function(j){
console.log('j' + j);
let bus = rawResult[j];
venue.type = 'venue';
venue.id = j+'a';
venue.latitude = bus.coordinates.latitude;
venue.longitude = bus.coordinates.longitude;
venue.title = bus.name;
venue.address = bus.location.address1;
arrVenues.push(venue);
})(i);
}
您的代碼很難看懂
const arrVenues = rawData.slice(0, 5)
.map((place, index) => (
{
type: 'venue',
id: `${index}a`,
latitude: place.coordinates.latitude,
longitude: place.coordinates.longitude,
title: place.name',
address: place.location.address,
}
));
如何回答您的問題,問題是您每次都不斷推動相同的對象。 當您執行arrVenues.push(venue)
,始終是同一對象,實際上是相同的內存位置。 由於您從不花時間來復制對象,而只需修改屬性,您最終會得到同一對象的數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.