javascript - перестать вставлять массив в массив - PullRequest
1 голос
/ 26 февраля 2012

Я сейчас работаю над проектом Javascript.Мне нужно взять конкретные данные из большого набора данных json и сохранить их в массиве для последующего использования.Пока это мой код:

publicationArray = [] = datafile["publications"]
for (p in publicationArray){
    var publication = publicationArray[p];
    publicationKeywords.push (publication.keywords);
}

Поскольку я уверен, что большинство из вас может сработать, он берет все объекты с идентификаторами «публикаций» из основного набора данных, затем перебирает их, беряключевые слова каждого отдельного объекта и сохранение их в ключе публикации (массив, определенный ранее в коде).Проблема в том, что данные хранятся в формате

[ [keyword1], [keyword2], [keyword3] ]

, тогда как мне нужны данные в форме

[keyword1, keyword2, keyword3]

Я очень плохо знаком с Javascript, поэтому я недействительно знаю, что я делаю неправильно, или что я должен искать, чтобы помочь с этим.Возможно ли то, что я хочу, и если да, может ли кто-нибудь помочь мне с решением?

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

Почему бы вам не попробовать

publicationKeywords.push (publication.keywords[0]);
1 голос
/ 26 февраля 2012
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 );
1 голос
/ 26 февраля 2012

Если 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]);
        }
}

Аргументация здесь: https://stackoverflow.com/a/3010848/187954

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...