因此,当我在js中遍历两个数组(关联)并将输出追加到表中时,我得到3 undefined
。输出看起来像这样:
Output
您可以在控制台中看到迭代是连续进行的, 这就是为什么在给定数组性质的情况下我得到未定义值的原因
这是对控制器的jQuery调用,在这里我得到了两个数组:
function getArtworks() {
$.ajax({
type: 'GET',
url: './index.php/Controller/getArtworks',
dataType: 'json',
success: function (jsonData) {
showArtsInTable(jsonData);
console.log(jsonData);
},
error: function () {
alert('Error :' + jsonData);
}
});
}
这是我遍历数组并追加到表的地方:
function showArtsInTable(jsonData) {
let table = $('#tblArt');
$('#artForm').hide();
table.empty();
table.append('<thead>');
table.append('<tr>');
table.append('<th>Namn</th>');
table.append('</tr>');
table.append('</thead>');
$.each(jsonData, function() {
$.each(this, function(i, value) {
console.log(value);
table.append('<tbody>');
table.append('<tr>');
table.append(
"<td><a href='#' onclick=getArtworkByID('" +
value['ID'] +
"')>" +
value['NAME'] +
'</a></td>'
);
table.append('</tr>');
table.append('</tbody>');
table.append('<tr>');
table.append('<td>' + value['MAX(BID)'] + '</td>');
table.append('</tr>');
});
});
}
字符串化控制台日志:
[
{
"ID": "1",
"NAME": "Chaviour",
"CATID": ""
},
{
"ID": "2",
"NAME": "simpleDrop",
"CATID": ""
},
{
"ID": "3",
"NAME": "Chattash",
"CATID": "Janne"
},
],
[
{
"ID": "1",
"DATE": "2019-03-16 19:39:06",
"MAX(BID)": "7500"
},
{
"ID": "2",
"DATE": "2019-03-16 19:39:06",
"MAX(BID)": "5000"
},
{
"ID": "3",
"DATE": "2019-03-16 20:55:48",
"MAX(BID)": "9000"
}
]
我只希望表在“名称”和“出价”列下附加值。 我该怎么办?
答案 0 :(得分:0)
我想我明白你的追求。
只需检查一下,是否需要以下输出?
名称|竞标
特性| 7500
simpleDrop | 5000
查塔什| 9000
您需要首先通过ID联接您的数据:
glBufferSubData
这将返回以下数据,从这里应该很容易在表中显示它:
const data = [
[
{
"ID": "1",
"NAME": "Chaviour",
"CATID": ""
},
{
"ID": "2",
"NAME": "simpleDrop",
"CATID": ""
},
{
"ID": "3",
"NAME": "Chattash",
"CATID": "Janne"
},
],
[
{
"ID": "1",
"DATE": "2019-03-16 19:39:06",
"MAX(BID)": "7500"
},
{
"ID": "2",
"DATE": "2019-03-16 19:39:06",
"MAX(BID)": "5000"
},
{
"ID": "3",
"DATE": "2019-03-16 20:55:48",
"MAX(BID)": "9000"
}
]
]
const tidyData = data[0].map((a) => {
// find the matching item by ID
let match = data[1].find((b) => b.ID === a.ID) || {}
// return the union
return {
...a,
...match,
}
})
console.log(tidyData);