gpt4 book ai didi

javascript - 在运行时在javascript数组中添加对象

转载 作者:行者123 更新时间:2023-11-30 15:51:51 26 4
gpt4 key购买 nike

mRegion 对象多次添加最后一个对象,但是 objBeacon 打印不同的对象。 mRegion 有什么问题?

      var mRegion = new Array();

var objBeacon = {
id: '10',
name:'name',
description: 'description'
};
$.ajax(settings).done(function(response) {
// populate beacon registry in an array
for (var i in response.items[0].devices) {
objBeacon.id = response.items[0].devices[i].id;
objBeacon.name = response.items[0].devices[i].name;
objBeacon.description = response.items[0].devices[i].description;


console.log("value of i is" + i);
console.log(objBeacon);

mRegion.push(objBeacon);
}
console.log(mRegion);

最佳答案

javascript 中的对象是通过引用传递的。您只有一个变量 objBeacon 并且每个数组元素都指向这个变量。每当您更改 objBeacon 时,所有引用都会更改。

var mRegion = [];

$.ajax(settings).done(function(response) {
// populate beacon registry in an array
for (var i in response.items[0].devices) {
mRegion.push({
id: response.items[0].devices[i].id,
uid: '00',
major: 1,
minor: 1,
name: response.items[0].devices[i].name,
description: response.items[0].devices[i].description
});
}
});

关于javascript - 在运行时在javascript数组中添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com