2017-05-26 1 views
0

Ich arbeite mit Tabellen und ich möchte alle Zeilen entfernen, die 0s auf ihnen haben. Ich habe folgendes für die Tabelle codiert:Entfernen von Zeilen mit 0

// eliminating null elements 
var k= 0; 
for (var i =0; i<operations_row;i++){ 
    if (Total_Ocurrances[i]!=0) { 
     Cause_code_final[k]= Cause_Row_Operations[i]; 
     Des_final[k]= Description[i]; 
     Total_DT_final[k]= Total_DT[i]; 
     Total_O_final[k]= Total_Ocurrances[i]; 
    k= k +1; 



    } 
} 

Die Variablen sind alle im Zahlenformat. Dies sollte einen neuen Wert in jeder Spalte speichern, jedes Mal, wenn keine 0 in der Zeile "Vorkommen" vorhanden ist. Aus irgendeinem Grund werden nicht alle 0 herausgenommen und auch einige Elemente, die nicht 0 sind, werden verloren.

+0

Warum verwenden Sie 'jquery' nicht dafür? mit der einfachen '.remove' Methode funktioniert Ihre Aufgabe –

+3

Was ist operations_row - Ich glaube wir haben einige Informationen verloren. :) – sheriffderek

+0

Sie arbeiten nicht wirklich mit Tabellen: Sie arbeiten mit mindestens 9 separaten Arrays, von denen Sie erwarten, dass Elemente im gleichen Index zueinander gehören. Dies ist eine schlechte Datenstruktur. Verwenden Sie stattdessen Objekte in * one * -Array. – trincot

Antwort

0

Ich kenne nicht Ihren gesamten Code, aber ich glaube, dass Sie wenn möglich mit Objekten arbeiten und die Filtermethode in Ihrem Array verwenden sollten.

var arr = [ 
    { 
     Total_Ocurrances=1, 
     Cause_code_final=10, 
     Des_final='asdfasf', 
     Total_DT_final=new Date(some_value), 
     Total_O_final=100 
    }, 
    { 
     Total_Ocurrances=0, 
     Cause_code_final=12, 
     Des_final='qwerqwer', 
     Total_DT_final=new Date(another_value), 
     Total_O_final=1002 
    } 
] 

var finalArr = arr.filter((item) => { 
    return item.Total_Ocurrances != 0; 
});