我找到了几篇关于这个主题的文章,但我仍有问题。我需要在java脚本中使用2D数组。第一个索引是文章数(0 ... x),第二个索引我需要4个值(关键字,标题,描述,网址)。这是我的代码
var news = new Array;
....
news[newsCount] = new Array;
for (var i in values){
var row = values[i];
var keyword = row[0];
var title = row[1];
var description = row[2];
var url = row[3];
news[i][0] = keyword;
news[i][1] = title;
news[i][2] = description;
news[i][3] = url;
}
在变量关键字中,title,description和url是正确的数据,我需要将它们带到新闻数组中。有人能帮助我吗?提前谢谢。
答案 0 :(得分:1)
您无法使用news[newsCount]
设置数组的大小(并且您不需要)
而不是像你那样初始化数组的第一级
然后在迭代中添加第二级
与news[i] = []
values = [["a1","a2","a3","a4"]]
var news = new Array;
for (var i in values){
news[i] = []
var row = values[i];
var keyword = row[0];
var title = row[1];
var description = row[2];
var url = row[3];
news[i][0] = keyword;
news[i][1] = title;
news[i][2] = description;
news[i][3] = url;
}
console.log(news);

请注意,这将产生相同的数组。
您还可以在JS中使用普通对象为数据结构添加更多上下文
news[i] = {}
news[i]['keyword'] = keyword;
...
答案 1 :(得分:0)
为什么不使用push()将每个新闻项添加到数组中?像这样:
news = []
for (i=0;i<values.length; i++){
var row = values[i].slice(0,4);
//you dont need these lines, you can use slice instead
//var keyword = row[0];
//var title = row[1];
//var description = row[2];
//var url = row[3];
news.push(row)
}
答案 2 :(得分:-1)
我认为您的问题是数组没有实例化,您是否尝试在分配之前添加news [i] = []?