Erreur lors de l'appel forEach sur le tableau

J'ai un problème forEach dans anoter forEach fonction:

La results variable contient un objet comme:

{
    names: [
        'Someone',
        'Someone else'
    ],
    emails: [
        '[email protected]'
        '[email protected]'
    ]
}

Je le veux pour se détendre tous les tableaux et le résultat dans un tableau comme ceci:

[
    {term: 'Someone', type: 'names'},
    ...
]

Voici mon code:

var keys = _.keys(results);

console.log(keys);

var finalResult = [];

keys.forEach( function (key) {

    var arrTerms = results[key];

    console.log(key, arrTerms); //arrTerms prints fine

    arrTerms.forEach(function (term) { //This line throws an exception

        finalResult.push({
            term: term,
            type: key
        });
    });

});

Imbriquée appel à forEach jette l'exception suivante:

TypeError: Uncaught error: Cannot call method 'forEach' of undefined

J'ai essayé à l'aide d'une boucle for à l'itération jusqu'à la longueur, mais il a généré une autre exception:

TypeError: Uncaught error: Cannot read property 'length' of undefined
  • Essayez, console.log(key, arrTerms, Array.isArray(arrTerms));
  • Le code tel qu'il est fonctionne très bien pour moi (à l'exception de votre manque une virgule dans votre définition de tableau). Ce n' results effectivement ressembler?
  • Il imprime typeOf comme Objet
  • Désolé, essayez Array.isArray. J'ai édité le commentaire
  • Array.isArray(arrTerms) retourne true
  • J'ai posté la structure des résultats dans le début de la question
  • Vous pourriez avoir quelque chose qui s'étend Object.prototype. Quelle est la valeur de keys? (aussi, si arrTerms est undefined, Array.isArray ne peut pas retourner true).

InformationsquelleAutor ZeMoon | 2015-04-01