第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在 Javascript 中訪問(嵌套的)對象和數(shù)組

在 Javascript 中訪問(嵌套的)對象和數(shù)組

倚天杖 2023-06-15 17:15:30
我不確定我是否對如何組織數(shù)組或如何訪問它有誤解。提議很簡單:擁有一系列汽車品牌和型號并訪問它們進(jìn)行展示。const carBrands = [  {    Audi: {      models: ["A1", "A2", "A3", "A4"],      unitsAvailable: 378,    }  },  {    BMW: {      models: ["M1", "M2", "M3", "M4"],      unitsAvailable: 413,    },  },  {    Honda: {      models: ["H1", "H2", "H3", "H4"],      unitsAvailable: 226,    },  }];我可以這樣訪問每個模型:  carBrands.forEach((object, i) => {    console.log(object, i)  });這會返回我的對象和索引:奧迪 0 寶馬 1 本田 2我不知道的是如何返回:品牌:奧迪型號:A1、A2、A3、A4 可用單位:378...對于 3 輛車中的每一輛。我知道我必須遍歷數(shù)組并為每個循環(huán)返回對象鍵/值對。但是我在使用正確的語法時遇到了問題。這是我想弄清楚如何制定的內(nèi)容:  let modelsToDisplay = [];  carBrands.forEach((object, i) => {    modelsToDisplay.push(<li key={i}>Make/Model/Units of each object</li>);  });感謝您的幫助:)
查看完整描述

3 回答

?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊

carBrands.flatMap(Object.entries)
    .map(([key, { models, unitsAvailable }]) => `${key} ${models.join(", ")} ${unitsAvailable}`)
    .forEach(v => console.log(v))


查看完整回答
反對 回復(fù) 2023-06-15
?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊

因為您的數(shù)組由 dict 對象組成,所以您需要考慮到您需要迭代鍵。在不修改輸入的情況下,您可以使用以下代碼來處理數(shù)據(jù)結(jié)構(gòu)的內(nèi)部值:


// For all defined objects

carBrands.forEach((object) => {

  // Determine manufacturers inside the current object (only 1 manufacturer per object in your case)

  var manufacturers = Object.keys(object);

  // For each manufacturer

  manufacturers.forEach((manufacturer) => {

    // Print manufacturer name

    console.log("Manufacturer: " + manufacturer);

    console.log("Models:");

    // For all models

    var models = object[manufacturer].models;

    models.forEach((model) => {

      // print model name

      console.log("  " + model);

    });

    // print available units

    console.log("Available units:");

    console.log("  " + object[manufacturer].unitsAvailable + "\n");

  });

});

輸出:


Manufacturer: Audi

Models:

  A1

  A2

  A3

  A4

Available units:

  378


Manufacturer: BMW

Models:

  M1

  M2

  M3

  M4

Available units:

  413


Manufacturer: Honda

Models:

  H1

  H2

  H3

  H4

Available units:

  226


查看完整回答
反對 回復(fù) 2023-06-15
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊

您遇到的問題是因為您使用的頂級密鑰是唯一的。而不是命名您的鍵Audi,BMW等等。我會使用一個通用鍵make,并將其值設(shè)置為您的品牌。這樣,當(dāng)您執(zhí)行循環(huán)時,您每次都可以請求相同的密鑰:


const carBrands = [

  {

    make: 'Audi',

    models: ["A1", "A2", "A3", "A4"],

    unitsAvailable: 378

  },

  {

    make: 'BMW',

    models: ["M1", "M2", "M3", "M4"],

    unitsAvailable: 413

  },

];


carBrands.forEach(brand => {

    console.log(brand.make);


    brand.models.forEach(model => console.log(model));


});

由于您談到要維護(hù)對象中的關(guān)系,我鼓勵您考慮如何將此信息存儲在數(shù)據(jù)庫中,并以此為基礎(chǔ)組織您的組織。


有很多carBrands。每個carBrand都有一個make, unitsAvailable, 并且有很多models.


您不會為每個創(chuàng)建一個新表carBrand,對嗎?您將添加一個新行。因此,按照上面的方式構(gòu)建它更接近于將其保存在數(shù)據(jù)庫中的方式,這有利于數(shù)據(jù)完整性并使其更加靈活。


在這種結(jié)構(gòu)中,通過 make 獲取東西仍然很容易,例如:


let audiModels = carBrands.filter(brand => brand.make == 'Audi').models;


查看完整回答
反對 回復(fù) 2023-06-15
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗 獲得超5個贊

這里的所有答案都是“正確的”,非常感謝你們!所以沒有一個比另一個更好。

我認(rèn)為喬納森對我過于復(fù)雜的數(shù)據(jù)結(jié)構(gòu)提出了一個很好的觀點。我將回到更簡單的版本,其中“Audi”等將是一個值,而不是一個鍵。

但我還將按照 Mottek 的建議構(gòu)建當(dāng)前結(jié)構(gòu)和訪問數(shù)據(jù)的示例。

當(dāng)我深入到項目中時,我將決定哪個是最終版本。

感謝大家的大力幫助!


查看完整回答
反對 回復(fù) 2023-06-15
  • 3 回答
  • 0 關(guān)注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號