如何访问这些数组键?

问题描述 投票:0回答:1

我在一个对象中有 5 个索引数组,我想访问这些数组键来显示它们。

我知道最后两行引起了问题。我已经搜索了一个小时,但没有找到为什么它不起作用。

var quotes = {
  karamazov: [{
    "Serge Karamazov": "Barrez vous **** de mimes."
  }],
  abitbol: [{
    name: "Georges Abitbol",
    quote: "Le train de tes injures roule sur le rail de mon indifférence.",
  }, ],
  bath: [{
    name: "Hubert Bonisseur de la Bath",
    quote: "Ça ne prenait pas beaucoup plus de temps.",
  }, ],
  moulinier: [{
    name: "Moulinier ",
    quote: "L'habit ne fait pas le moine, mais il fait l'agent... Même non titularisé.",
  }, ],
  welles: [{
    name: "Orson Welles",
    quote: "C'est du vol et du plagiat. j'aime pas trop les voleurs et...",
  }, ],
};

const quotesWrap = document.querySelector('#quotes-wrap');

Object.keys(quotes).forEach(function(writer) {
  const citationWrap = document.createElement("div");
  quotesWrap.appendChild(citationWrap);
  const citation = document.createElement("p");
  const auteur = document.createElement("p");
  citationWrap.appendChild(citation);
  citationWrap.appendChild(auteur);

  citationWrap.classList.add("quote");
  citation.classList.add("citation");
  auteur.classList.add("auteur");

  citation.innerHTML = '"' + writer.quote + '"';
  auteur.innerHTML = writer.name;
});
<div id="quotes-wrap"></div>

javascript arrays object
1个回答
0
投票

var quotes = {
  karamazov: [{
    "Serge Karamazov": "Barrez vous **** de mimes."
  }],
  abitbol: [{
    name: "Georges Abitbol",
    quote: "Le train de tes injures roule sur le rail de mon indifférence.",
  }, ],
  bath: [{
    name: "Hubert Bonisseur de la Bath",
    quote: "Ça ne prenait pas beaucoup plus de temps.",
  }, ],
  moulinier: [{
    name: "Moulinier ",
    quote: "L'habit ne fait pas le moine, mais il fait l'agent... Même non titularisé.",
  }, ],
  welles: [{
    name: "Orson Welles",
    quote: "C'est du vol et du plagiat. j'aime pas trop les voleurs et...",
  }, ],
};

const quotesWrap = document.querySelector('#quotes-wrap');

Object.keys(quotes).forEach(function(writer) {
      const citationWrap = document.createElement("div");
      quotesWrap.appendChild(citationWrap);
      const citation = document.createElement("p");
      const auteur = document.createElement("p");
      citationWrap.appendChild(citation);
      citationWrap.appendChild(auteur);
      citationWrap.classList.add("quote");
      citation.classList.add("citation");
      auteur.classList.add("auteur");

      // array of quotes for each writer
      quotes[writer].forEach(function(quoteObj) {
        // key (author's name) and value (quote) from the quote object
        const authorName = Object.keys(quoteObj)[0];
        const quote = quoteObj[authorName];
        citation.innerHTML = '"' + quote + '"';
        auteur.innerHTML = authorName;
      });
    });
<div id="quotes-wrap"></div>

可以使用

quotes[writer]
访问每个作者的引号数组。接下来,使用
Object.keys(quoteObj)[0]
获取数组中每个引用对象的键(作者姓名),并使用
quoteObj[authorName]
获取值(引用)。然后使用这些值设置作者和引文元素的innerHTML。

© www.soinside.com 2019 - 2024. All rights reserved.