插入2D数组 - JavaScript

时间:2017-06-02 15:30:39

标签: javascript arrays

我找到了几篇关于这个主题的文章,但我仍有问题。我需要在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是正确的数据,我需要将它们带到新闻数组中。有人能帮助我吗?提前谢谢。

3 个答案:

答案 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] = []?