我目前有一个多维数组:
var locations = [
['Event', 'Monday', 50.820250, -0.143534, 'Image', 'fa fa-heart'],
['Event 2', 'Tuesday', 50.819939, -0.140978, 'Image', 'fa fa-heart'],
];我有一个包含以下内容的JavaScript文件:
$(function ()
{
$.ajax({
url: 'locations.php', data: "", dataType: 'json', success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var id = row.id;
var name = row.name;
var date = row.date;
var lat = row.lat;
var long = row.long;
var image = row.header;
var test = "['" + name + "', '" + date + "', " + lat + ", " + long + ", '" + image + "', 'fa fa-heart'],";
locations.push(test);
}
}
});
async: false
});它很好地获取了PHP文件中的所有信息,但是我想在每个循环的当前数组中“推入”/添加一个新事件。
任何帮助都是非常感谢的!
发布于 2017-01-17 02:56:01
您正在将test变量设置为一个长字符串,而不是实际的数组。要使其成为数组,可以执行以下操作:
var test = [name, date, lat, long, image,'fa fa-heart'];
locations.push(test);发布于 2017-01-17 02:58:38
您要添加的是一个字符串,而不是一个数组。它应该是:
var test = [name, date, lat, long, image, 'fa fa-heart'];为了确认,在将test推入数组之前,打印类型。即
console.log(typeof test);如果它是一个字符串,你会得到' string‘作为输出;如果它是一个数组,你会得到'object’。
发布于 2017-01-17 03:09:15
您只需为每一行创建一个新数组,然后将每个项目推入此数组。最后,将这个新数组放入locations数组中。
这是JSBin:http://jsbin.com/zumijib/edit?html,css,js,output
for (var i = 0, rowLength = rows.length; i < rowLength; i++) {
var row = rows[i];
// create new array
var newData = [];
// add new data to end of list.
newData.push(row.name);
newData.push(row.date);
newData.push(row.lat);
newData.push(row.long);
newData.push(row.image);
newData.push('fa fa-heart');
// add data to current list of locations.
locations.push(newData);
}https://stackoverflow.com/questions/41683166
复制相似问题