更新javascript对象键值

updating javascript object key value

本文关键字:键值 对象 javascript 更新      更新时间:2023-09-26

如果我尝试添加更多的键值到javascript对象,它会改变所有键的值,而不仅仅是我添加的一个。

var corridorObject = {};
var makeObjects = [];
function someFunction(){
    var a = makePoints;
    var Corridor = viewer.entities.add({
        corridor : {
            positions : (a),
            width : 10.0,
            material : Cesium.Color.GREEN,
        }
        var idv0 = Corridor.id
        corridorObject[idv0] = makeObjects;
        console.log(corridorObject);
        makeObjects.length=0;
    }

走廊ID是一个guid, makeObjects是一个对象数组,当我运行这个时,它完美地添加了键和值,但是当我第二次运行它时,它添加了一个带有新ID和新值的新键,但它也将所有其他键的值更改为最近的值。

这里是控制台,正如您可以看到的,第一次ID的数组是3长,第二次相同ID的数组是2长

Object {91ff9967-7019-4e76-846e-c0e125481060: Array[3]}
Object {91ff9967-7019-4e76-846e-c0e125481060: Array[2], 3de2c2b1-5fb6-495c-9034-2b37713e5c30: Array[2]}

抱歉要更清楚,这是来自Cesiumjs,它采取点并将它们转换为走廊,走廊id和使其成为该对象的点数组,然后添加到此对象。然后清空点数组。

如果你在重复

var corridorObject = {};
var makeObjects = [];
var idv0 = Corridor.id
corridorObject[idv0] = makeObjects;
console.log(corridorObject);

这行代码将初始化

var corridorObject = {};

这就是为什么你只能得到一把钥匙。将初始化置于迭代之外