在 for 循环外访问数组变量 javascript
Access array variables outside for loop javascript
我正在尝试使用数据tables jquery库填充table,遇到的问题是只显示最后一个值,通过循环访问这些值数据存储在 json 中。这是我的代码:-
for (var i = 0; i < json_parsed.Users.length; i++) {
var user = json_parsed.Users[i];
if (user.position == "GK") {
goalkepeers = [{
"playerID": user.playerID,
"playerName": user.playerName,
}];
}
}
$('#myTable').dataTable({
"aaData": goalkepeers,
"aoColumns": [{
"mDataProp": "playerID"
}, {
"mDataProp": "playerName"
},
]
});
一切正常,但我的 table 中只显示了一个数据,数组应该是这样的
goalkepeers = [{
"playerID": player1ID,
"playerName": player1Name,
},
{
"playerID": player2ID,
"playerName": player2Name,
}];
任何帮助将不胜感激,再次感谢:-)
试试这个,全局声明守门员,然后每次在循环中声明守门员并将其推入守门员数组:
var goalkeepers = [];
for (var i = 0; i < json_parsed.Users.length; i++){
var user = json_parsed.Users[i];
if(user.position=="GK"){
var goalkeeper= {
"playerID": user.playerID,
"playerName":user.playerName,
};
goalkeepers.push(goalkeeper);
}
}
发生这种情况是因为您要替换以下值:
var goalkepeers= [];
for (var i = 0; i < json_parsed.Users.length; i++){
var user = json_parsed.Users[i];
if(user.position=="GK"){
var obj={
"playerID": user.playerID,
"playerName":user.playerName,
};
goalkeepers.push(obj);
}
}
在循环之前定义数组
goldkeepers= array();
然后在循环内做
goalkepeers.push({
"playerID": user.playerID,
"playerName": user.playerName,
});
在您的代码中,您的数组每次都会被下一个 json_parsed.Users 元素覆盖,因此最终结果是一个仅包含最后一个元素的数组
我正在尝试使用数据tables jquery库填充table,遇到的问题是只显示最后一个值,通过循环访问这些值数据存储在 json 中。这是我的代码:-
for (var i = 0; i < json_parsed.Users.length; i++) {
var user = json_parsed.Users[i];
if (user.position == "GK") {
goalkepeers = [{
"playerID": user.playerID,
"playerName": user.playerName,
}];
}
}
$('#myTable').dataTable({
"aaData": goalkepeers,
"aoColumns": [{
"mDataProp": "playerID"
}, {
"mDataProp": "playerName"
},
]
});
一切正常,但我的 table 中只显示了一个数据,数组应该是这样的
goalkepeers = [{
"playerID": player1ID,
"playerName": player1Name,
},
{
"playerID": player2ID,
"playerName": player2Name,
}];
任何帮助将不胜感激,再次感谢:-)
试试这个,全局声明守门员,然后每次在循环中声明守门员并将其推入守门员数组:
var goalkeepers = [];
for (var i = 0; i < json_parsed.Users.length; i++){
var user = json_parsed.Users[i];
if(user.position=="GK"){
var goalkeeper= {
"playerID": user.playerID,
"playerName":user.playerName,
};
goalkeepers.push(goalkeeper);
}
}
发生这种情况是因为您要替换以下值:
var goalkepeers= [];
for (var i = 0; i < json_parsed.Users.length; i++){
var user = json_parsed.Users[i];
if(user.position=="GK"){
var obj={
"playerID": user.playerID,
"playerName":user.playerName,
};
goalkeepers.push(obj);
}
}
在循环之前定义数组
goldkeepers= array();
然后在循环内做
goalkepeers.push({
"playerID": user.playerID,
"playerName": user.playerName,
});
在您的代码中,您的数组每次都会被下一个 json_parsed.Users 元素覆盖,因此最终结果是一个仅包含最后一个元素的数组