1

私はオンライン調査を作成するプラットフォーム確認に取り組んでいます。これは、実行時エラー「オブジェクトが必要」になるスクリプトノードです。修正を手伝っていただければ幸いです。質問q2bおよびq3aで特定のコードが1または2を保持しているかどうかを確認することになっています(質問は関数f()で参照-f(質問ID)[コード])-'//スキップ?' 部。次に、最大4つのコードを別の質問(h_q4)に再コード化して、さらに使用できるようにします。

var flag1 : boolean = false;
var flag2 : boolean = false;

//null
for(var i: int=0; i <9; i++)
{
    var code = i+1;
    f("h_q4")[code].set(null);
}
f("h_q4")['95'].set(null);

//skip ?
for(var k: int=1; k <16; k+=2)
{
    var code = k;
    if(f("q2b")[code].none("1", "2"))
        flag1;
    else
    {
        flag1 = 0;
        break;
    }
}

if(f("q3a")['1'].none("1", "2"))
flag2;

if(flag1 && flag2)
f("h_q4")['95'].set("1");
//recode 
else 
{
    var fromForm = f("q2b"); 
    var toForm = f("h_q4"); 
    const numberOfItems : int = 4; 
    var available = new Set(); 
    if(!flag1)
    {
        for( i = 1; i < 16; i+=2)
        {
            var code = i;

            if(f("q2b")[i].any("1", "2"))
            available.add(i); 
        }
    }
    if(!flag2)
    {
        available.add("9");
    }
    var selected = new Set(); 
    if(available.size() <= numberOfItems) 
    { 
        selected = available; 
    } 
    else 
    { 
        while(selected.size() < numberOfItems) 
        {
            var codes = available.members();
            var randomNumber : float = Math.random()*codes.length;
            var randomIndex : int = Math.floor(randomNumber);
            var selectedCode = codes[randomIndex];
            available.remove(selectedCode);
            selected.add(selectedCode); 
        }
    } 
    var codes = fromForm.domainValues();
    for(var i = 0;i<codes.length;i++) 
    {
        var code = codes[i]; 
        if(selected.inc(code)) 
        { 
            toForm[code].set("1"); 
        }
        else
        { 
            toForm[code].set("0"); 
        } 
    }
}

コードの最初の部分(// null)は、テストを容易にするために「受信者」の質問を空にします
。.set()、. get()、. any()、. none()はすべて有効です

4

0 に答える 0