2017-10-03 6 views
0

Je suis nouveau Qualtrics/JavaScript ... apprécierait l'aide surLa mise en œuvre des opérations mathématiques dans Qualtrics- SOS

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}")]; 

`for(i=0;i<block1.length;i++) { 
`diff_array[i]= block1[i+1]- block1[i]}` 

Ensuite, je veux faire ce qui suit: les -find en tableau num_switch_block1= number of ones in difference array)

-create lambda Variable- lambda_multiplier= [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3]

y at-il une façon plus élégante pour incrémenter ce tableau? Devrais-je définir cela comme des données intégrées? tableau de différence: multipliez par lambda_multiplier

`var mult = multiply(diff_array,lambda_multiplier);` 

-Alors réduire ce tableau uniquement les valeurs non nulles mult.filter (Boolean)

Suis-je utiliser les bonnes fonctions/faire de ce droit?

Répondre

1

Je ne sais pas ce que vous ferez avec le tableau mult, mais voici le code pour le créer (non testé):

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}")]; 
    var lambda_multiplier = [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3]; 
    var mult = []; 
    for(i=0;i<lambda_multiplier.length;i++) { 
    mult[i] = (block1[i+1] - block1[i]) * lambda_multiplier[i]; 
    } 
    mult = mult.filter(Number); //remove 0s from mult 
+0

J'aime votre pour BOUCLE :) plus efficace Comment régler mult.filter (Nombre) à une variable? –

+0

Oui, j'ai mis à jour la dernière ligne du code ci-dessus. –