2017-04-08 5 views
0

私は今、私は空の値(「」)を持ってこれらのキーを削除したいスプライスがオブジェクトのために働いていません(indexOfのは関数ではありません)

Object {val1: "Hello", val2: "", dt1: "pilo1", dt2: "pilo2", lo1: "log1"} 

のような物を持っています。

私はコードを試してみました:

angular.forEach($scope.test,function(value,key){ 
      if(value==""){ 
        var index = $scope.test.indexOf(key); 
        $scope.test.splice(index,1); 
      } 
    }); 
//$scope.test={val1: "Hello",val2: "",dt1:".......} 

今私はキーが静的ではありません考慮しなければならないことをもう一つがあります。 名前の変更は、条件によって異なります。例えば:{val1: "",val2:"Hello1",val3:"",val4:"Hello3",dt1:""} だから私は一般的な解決策が必要です。

+0

のindexOfは... http://stackoverflow.com/questions/8668174/indexof-method-in-an-object-array – mplungjan

答えて

0

spliceメソッドを使用してオブジェクトプロパティを削除することはできません。これを行う代わりに、delete演算子を使用できます。

angular.forEach($scope.test,function(value,key){ 
    if(value==""){ 
     delete $scope.test[key] 
    } 
}); 

このオペレータの詳細については、hereをご覧ください。私は平易なJavaScriptとスニペットを持っています、これはdeleteオペレータの使用を示しています。

var obj = {val1: "Hello", val2: "", dt1: "pilo1", dt2: "pilo2", lo1: "log1"}; 
 
console.log('Before we call delete'); 
 
console.log(obj); 
 
Object.keys(obj) 
 
     .forEach(function(key){ 
 
      if(obj[key]===""){ 
 
       delete obj[key]; 
 
      } 
 
}); 
 
console.log('After we call delete'); 
 
console.log(obj);

+0

それは罰金をウォーキングだアレイです。ありがとう:) –

+0

@NirajSazzieようこそ! – Christos

関連する問題