Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-停止将数组推入数组_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

javascript-停止将数组推入数组

javascript-停止将数组推入数组,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我目前正在从事一个Javascript项目。我需要从一个大的json数据集中获取特定的数据,并将其存储在一个数组中以供以后使用。这是我目前的代码: publicationArray = [] = datafile["publications"] for (p in publicationArray){ var publication = publicationArray[p]; publicationKeywords.push (publication.keywords); }

我目前正在从事一个Javascript项目。我需要从一个大的json数据集中获取特定的数据,并将其存储在一个数组中以供以后使用。这是我目前的代码:

publicationArray = [] = datafile["publications"]
for (p in publicationArray){
    var publication = publicationArray[p];
    publicationKeywords.push (publication.keywords);
}
我相信大多数人都能解决,这会从主数据集中获取ID为“publications”的所有对象,然后循环遍历它们,获取每个对象的关键字,并将它们存储在publicationKeywords(代码前面定义的数组)中。问题是数据是以这种格式存储的

[ [keyword1], [keyword2], [keyword3] ]
然而,我需要表格中的数据

[keyword1, keyword2, keyword3]

我对Javascript非常陌生,所以我真的不知道我做错了什么,或者我应该搜索什么来帮助它。我想要的是可能的吗?如果是,有人能帮我解决吗?

如果
发布。关键字
是一个关键字数组,只需迭代它,将每个关键字添加到这个内部循环中的
发布数组中

var publicationArray = [] = datafile["publications"];
for (p in publicationArray){
    var publication = publicationArray[p];
    for (keyword in publication.keywords) {
        publicationKeywords.push(keyword);
    }
}
此外,在迭代数组时,应使用vanilla for循环:

for (var i = 0; i < publicationArray.length; i++) {
        var publication = publicationArray[p];
        for (var j = 0; j < publication.length, j++) {
            publicationKeywords.push(publication[j]);
        }
}
for(var i=0;i
推理:你为什么不试试

publicationKeywords.push (publication.keywords[0]);
var a=[[1]、[2]、[3];
var b=[];

对于(var i=0,n=a.length;iDid您真的想让
p
成为一个全局变量吗?如果不是,请使用
var
使其成为包含它的函数的局部变量。这只是一个常见的JS begginer陷阱:在数组上迭代时使用常规的for循环,而不是for in。只有在需要迭代对象的键时才使用for in。感谢ips每个人。这么多不同的方式做它!
var a = [[1],[2],[3]];
var b = [];
for(var i=0,n=a.length;i<n;i++){
   b = b.concat( a[i] );
}
console.log( b );