2017-10-01 3 views
0

J'ai un sondage dans Qualtrics, et j'ai besoin de faire quelques calculs basés sur les réponses d'une table matricielle. J'ai besoin de trouver le "point de commutation".Qualtrics - utiliser javascript pour créer un tableau puis effectuer des calculs

Le tableau de réponses ressemblera à quelque chose comme ceci:

[0 0 0 1 1 1 1 1 1 1] 

Donc, pour le tableau ci-dessus, se situe entre le point de commutation 3ème et 4ème élément. Je ne sais pas quelle est la meilleure façon de faire cela, et j'ai eu du mal à le comprendre - toute direction est la plus appréciée.

Voici ce que j'essaie de faire:
J'ai créé une variable de données incorporée dans le flux d'enquête pour générer les réponses sélectionnées.

Var block1= [‘${q://QID664/SelectedAnswerRecode/1}’], 
‘${q://QID664/SelectedAnswerRecode/2}’], 
[‘${q://QID664/SelectedAnswerRecode/3}’], 
[‘${q://QID664/SelectedAnswerRecode/4}’], 
[‘${q://QID664/SelectedAnswerRecode/5}’], 
[‘${q://QID664/SelectedAnswerRecode/6}’], 
[‘${q://QID664/SelectedAnswerRecode/7}’], 
[‘${q://QID664/SelectedAnswerRecode/8}’], 
[‘${q://QID664/SelectedAnswerRecode/9}’], 
[‘${q://QID664/SelectedAnswerRecode/10}’]; 

Ensuite, analyser

integers- var block1= parseInt([block1]) 

}); 

, je dois vérifier le tableau de 2 façons pour vous assurer qu'il est "valide":

  • vérifier si les valeurs dans block1 tableau sont tous égaux à 1 ou tous égaux à 0
  • vérifier s'il y a plus de 2 points de commutation
  • si l'une d'entre elles sont vraies, alors ce bloc est invalide

Ensuite, trouver et mettre ce point de commutation à une valeur.

Répondre

1

Un couple de choses. Tout d'abord, la définition de votre tableau est fausse ... seulement un ensemble de parenthèses et pas de "smartquotes". Deuxièmement, parseInt ne fonctionne que sur une seule chaîne. Il devrait être:

Var block1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"), 
parseInt("${q://QID664/SelectedAnswerRecode/2}"), 
parseInt("${q://QID664/SelectedAnswerRecode/3}"), 
parseInt("${q://QID664/SelectedAnswerRecode/4}"), 
parseInt("${q://QID664/SelectedAnswerRecode/5}"), 
parseInt("${q://QID664/SelectedAnswerRecode/6}"), 
parseInt("${q://QID664/SelectedAnswerRecode/7}"), 
parseInt("${q://QID664/SelectedAnswerRecode/8}"), 
parseInt("${q://QID664/SelectedAnswerRecode/9}"), 
parseInt("${q://QID664/SelectedAnswerRecode/10}")]; 

Maintenant block1 est un tableau d'entiers. Vous pouvez le parcourir avec une instruction for:

for(i=0;i<block1.length;i++) { 
    //Do something with block1[i] 
} 
+0

Il est vraiment difficile de lire le code dans les commentaires. Je vous recommande d'accepter cette réponse, puis de créer un nouveau post avec vos questions supplémentaires. –

+0

Merci! Juste posté- https://stackoverflow.com/q/46537177/8702387 –

+0

Vous n'avez pas accepté cette réponse. –