当前位置: 首页 > 知识库问答 >
问题:

限制数组中的JSON结果[重复]

公孙阳羽
2023-03-14

我调用了一些JSON结果,它在一个名为“cast”的数组中列出了一组参与者。我用这个JS调用列表中的第一项。。。

let movieCredits = document.getElementById("movieCredits");
movieCredits.innerHTML = out.credits.cast[0].name;

把它们放在一个小隔间里,像这样。。。

<div id="movieCredits"></div>

我需要列出前5个结果(不仅仅是第一个)。他们的方法简单吗?

共有2个答案

费星晖
2023-03-14

您的代码只显式引用数组的元素0...您需要能够引用前5个。然后,使用您引用的那个,您将innerHTML设置为这一件事...就像您目前所做的那样,即使您循环遍历数组,您也会继续覆盖innerHTML。您要么需要在循环时构建一个innerHTML字符串,然后进行最终写入...或者,在循环时创建新的超文本标记语言元素,并将它们作为子元素添加到目标div中,就像我在下面的片段中所做的那样。

function populateCast() {

  var out = {};
  out.credits = {};
  out.credits.cast = [{
      name: 'actor_one'
    },
    {
      name: 'actor_two'
    },
    {
      name: 'actor_three'
    },
    {
      name: 'actor_four'
    },
    {
      name: 'actor_five'
    },
    {
      name: 'actor_six'
    },
    {
      name: 'actor_seven'
    }
  ];

  for (var i = 0; i < 5; i++) {
    var element = document.createElement("p");
    element.innerHTML = out.credits.cast[i].name;
    var target = document.getElementById('movieCredits');
    target.appendChild(element);
  }
}
<html>

<body>
  <div id="movieCredits"></div>
  <button id="castPopulate" onClick="populateCast()">Populate Cast</button>
</body>

</html>
严修诚
2023-03-14

您可以使用array使用前5个结果创建一个新数组。切片:

const firstFive = out.credits.cast.slice(0, 5)

然后,您可以根据需要生成HTML,例如。

const listItems = firstFive.map(actor => `<li>${actor.name}</li>`);
movieCredits.innerHTML = `<ul>${listItems}</ul>`;
 类似资料:
  • 问题内容: 如何限制从数据库检索到的结果数? 问题答案: 您可以这样尝试,以明确获取10个结果。 如果后端支持,它将自动在后端创建本机查询以检索特定数量的结果,否则将在获取所有结果后进行内存限制。

  • 问题内容: 在我的elasticsearch索引“ people”中,包含以下文件: 我想得到一个文档的结果,该文档的分区为2或1,但是最多只能包含2个。因此,如果以上是我的整个索引,我希望它返回: 用Elastic中的单个查询是否可以实现此目标?非常感谢您的帮助! 问题答案: 这样的事情应该做到:

  • 问题内容: 我正在尝试提出一种SQL解决方案,以安排输出以匹配预期的JSON格式。 我有一些简单的SQL来突出显示问题的根源。 它将返回JSON为; 我需要的是在“ telecome”数组中添加额外的对象,使其看起来像; 我错误地认为我可以继续添加到我的SQL中,如下所示: 但是它将按照我的命名缩进嵌套项目; 由于与另一个列名或别名冲突,无法在JSON输出中生成属性’telecom.use’。SE

  • 问题内容: 我正在编写查询以获取与多个词组之一匹配的结果,例如 它可以按预期工作,但我有一个问题:10个得分结果都匹配相同的短语。 我想到的解决方案是将每个子句的结果数限制为例如5个元素。 问题在于,我看不到如何使用Elastic Search查询来实现此目的,也不知道是否可能,或者是否存在另一种执行我想要的方式。 有任何想法吗 ? 谢谢 ! 问题答案: 当您尝试实现3个查询的并集时,Elasti

  • 主要内容:指定初始位置,不指定初始位置,LIMIT和OFFSET组合使用当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用  LIMIT 关键字来限制查询结果返回的条数。 LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。 LIMIT 关键字有 3 种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET 组合使用。 指定初始位置 LIMI

  • 问题内容: 在MySQL中,我可以执行以下操作: 如果表有10,000行,那么该查询的速度要比我省略LIMIT部分的速度快得多。 在ElasticSearch中,我得到以下内容: 当我运行此搜索时,它需要花费几秒钟的时间,而mysql可以在短得多的时间内返回相同查询的结果。 如果传入size参数(设置为1),则它仅成功返回1个结果,但是查询本身并没有比将size设置为unlimited并返回所有结