javascript-停止将数组推入数组
我目前正在从事一个Javascript项目。我需要从一个大的json数据集中获取特定的数据,并将其存储在一个数组中以供以后使用。这是我目前的代码: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); }
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 );