亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態創建對象字面量

動態創建對象字面量

偶然的你 2023-04-20 09:54:47
我正在嘗試動態添加一個名為“geometry”的對象及其屬性“x”和“y”,在一個名為“features”的對象數組中。假設 for循環運行 N次而不是 2 次。我想要實現的最終結構是這樣的:{  "type": "features",  "features": [{      "geometry": {          "x": -8.895197546558027,          "y": 38.52577703769191      }  },  {      "geometry": {          "x": -8.877264297084386,          "y": 38.53907316236277      }  }]}使用我的代碼,我得到了錯誤 - “無法設置未定義的屬性‘幾何’”。function makeOrders(){    try {        var orders = { "type": "features" };        orders.features = [{}];        for(var i=0; i<2; i++){            orders.features[i].geometry = {};            orders.features[i].geometry.x = "value_here";            orders.features[i].geometry.y = "other_value_here";        }        console.log(orders);    } catch (e) {        console.error(e);    }}
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

orders.features = [{}];

features是一個數組。索引處的值(最初)0是一個空對象。


這是它唯一的價值。


因此,當i您1嘗試設置屬性undefined而不是對象時。


不要用空對象初始化數組。在需要時向數組添加一個對象:


for(var i=0; i<2; i++){

    orders.features[i] = {};

…這意味著您在開始之前不需要數組中的空對象:


orders.features = [];

for(var i=0; i<2; i++){

…但是真的沒有必要重復訪問數組的索引和修改對象。


只需創建包含所有數據的對象,然后將push其放到數組的末尾:


    orders.features = [];

    for(var i=0; i<2; i++){

        const object = {

            geometry: {

                x: "value_here",

                y: "other_value_here"

            }

        };

        orders.features.push(object);

    }


查看完整回答
反對 回復 2023-04-20
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號