2017-08-11 29 views
0

こんにちは、空の要素がまだそこに残っている理由が分かりません(またはクリア関数が推測できない)。皆さんはこれを見てもらえますか?私は、この配列は、後にコードだけを解決していないの背後に何が起こっているいただきまし求めています同じarray.Iに別の値を追加取得しています今まで、私はそれがDVALUE配列に4を追加]ボタンをクリックしたときに、この機能であなたに空の要素を配列から削除する

enter image description here

に感謝します。

if("q"+idcount+"d" == this.id){ 
    DVALUE[dcount++] = 4; 
// alert("D ARRAY"+DVALUE.toString()); 
    } 

と私はボタンを元に戻す]をクリックし、これまでそれが最後に追加された数

if ("d" === qwer) { 
    // alert(""+DVALUE.toString()); 
    DVALUE.pop(); 
    cleararrayD(); // also calling this function to remove empty elements when ever this if occurs 
} 

を削除します。これは私が背後起こっているいただきまし求めてい

function cleararrayD() { 
    lens = DVALUE.length, i; 
    for (i = 0; i < lens; i++) DVALUE[i] && DVALUE.push(DVALUE[i]); // copy non-empty values to the end of the array 
    DVALUE.splice(0, lens); 
    } 

答えて

1

私は質問に答えました。あなたが見ることができるように、それは配列をクリアしますが、私は間違ったインデックスに要素を置きます。コードに提案する任意の

1

cleararrayD関数であるとき、これはありますコードを解決するだけでなく、

要素が第二のパラメータで元の配列 .lengthと呼ばれる .splice()DVALUEの各インデックスの .push() ED DVALUEのアレイであるとして

.lengthDVALUEの配列.push() EDに要素に先行する要素を除去、cleararrayD()関数呼び出しで変化しません配列。

+0

DVALUE[dcount++] = 4;

私はちょうど私の削除機能では、このDcount--を行うので、毎回私はインデックスを追加 ++ボタンDcount関数をクリックしてください? –

+0

入力と期待結果は何ですか? – guest271314

+0

入力はちょうど数字であり、結果は少し複雑です。私はインデックスですべての数字を取得しています。0-11インデックスでなければなりません。すべてのインデックスに番号があるので、空の要素をクリアする必要があります。 –