【发布时间】:2022-01-19 00:46:58
【问题描述】:
我正在使用 jQuery 并通过使用 $.ajax 从 API 获得响应。我想从每个对象内部获取数组长度并将其显示在 html 页面中。这是我到目前为止所做的。 这是 API 响应,我对最后一个对象进行了细分,其中包含一个数组和玩家名称:
{_type: "InjuredPlayers", flaggedTokens: Array(1)} //1 injured player name
{_type: "InjuredPlayers", flaggedTokens: Array(3)} //3 injured players names
{_type: "InjuredPlayers", flaggedTokens: Array(5)} //5 injured players names
{_type: "InjuredPlayers", flaggedTokens: Array(2)} //2 injured players names
>flaggedTokens:Array(2)
>0:{offset: 0, token: "John", type:"UnknownToken"}
>1:{offset: 1, token: "Adam", type:"UnknownToken"}
length: 2
>_proto_:Array(0)
_type: "InjuredPlayers"
>_proto_: Object
为了获取数组的长度,我可以根据Get length of array inside object 执行这两种方法中的任何一种
console.log(response.flaggedTokens.length)
1
3
5
2
或
console.log(response["flaggedTokens"].length)
1
3
5
2
我的失败尝试:我将此输出分配给一个变量,并尝试通过这样做循环并输出:
$.ajax(gameResponse).done(function(response) {
let injuredPlayers = response.flaggedTokens.length;
let injuredPlayersArray = [];
for (let i = 0; i < injuredPlayers.length; i++) {
injuredPlayersArray.push(injuredPlayers[i])
}
$('.injured_players').html(injuredPlayersArray[i])
})
<div class="container">
Team One Total number: <span class="injured_players"></span> //should be 1
Team Two Total number: <span class="injured_players"></span> //should be 3
Team Three Total number:<span class="injured_players"></span> //should be 5
Team Four Toal number: <span class="injured_players"></span> //should be 2
</div>
显然我犯了一些错误,我自己似乎无法解决这个问题。我希望有人能指导我正确的方向。
【问题讨论】:
-
你为什么回到
for里面? -
$('.injured_players').html(string)会将具有“injured_players”类的 first 元素的 HTML 设置为给定的字符串。将该行代码移入for循环并使其成为$('.injured_players').eq(i).html(string)。删除return行,因为它会立即退出函数。 -
另外,您应该在控制台中遇到错误。
injuredPlayers是一个数字,而数字没有length属性,所以你应该在i < injuredPlayers.length上得到一个错误。 -
@HereticMonkey 不,这不会是一个错误,
(5).length只是undefined,而i < undefined永远不会是真的。 -
eq(i)获取索引i处的元素。.html(string)将 HTML 设置为string的任何值。
标签: javascript jquery arrays