我目前正在开发一个Javascript项目。我需要从大型json数据集中获取特定数据并将其存储在数组中以供以后使用。到目前为止,这是我的代码:
publicationArray = [] = datafile["publications"]
for (p in publicationArray){
var publication = publicationArray[p];
publicationKeywords.push (publication.keywords);
}
我相信大多数人都可以解决这个问题,这会从主数据集中获取所有具有ID“publication”的对象,然后遍历它们,获取每个单独对象的关键字并将它们存储在publicationKeywords(数组中)在代码中先前定义的)。问题是数据以
格式存储[ [keyword1], [keyword2], [keyword3] ]
而我需要表格中的数据
[keyword1, keyword2, keyword3]
我对Javascript很新,所以我真的不知道我做错了什么,或者我应该搜索什么来帮助它。我想要的是什么,如果是的话,任何人都可以帮我解决问题吗?
答案 0 :(得分:1)
如果publication.keywords
是关键字数组,只需迭代它,将每个关键字添加到此内循环内的publicationArray
。
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]);
}
}
答案 1 :(得分:1)
你为什么不试试
publicationKeywords.push (publication.keywords[0]);
答案 2 :(得分:1)
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 );