2016-08-04 20 views
-2

こんにちは、私はJSONファイル内のオブジェクトを削除しようとしていますが、動作していません。私は値pを値、名前、日付、番号を含む項目全体と等しく設定します。 jsonファイルから特定の項目を削除するためにdeleteを使用すると、削除されません。なぜあなたが知っていたのか不思議でした。ありがとう。JSONファイルの項目を削除する方法

はここnodejsコード

app.get('/testtwilio3', function(req,res,next){ 

     var fs = require('fs'); 
     var configFile = fs.readFileSync('./Public/patients.json'); 
     var config = JSON.parse(configFile); 
     var p = {name: req.query.name, date: req.query.date, number: req.query.number}; 
     var key = p; 
     console.log(p); 
     delete config[key]; 
     console.log(config); 
    }); 

はここで、コントローラここ

$scope.deleteName = function($index){ 

    var patient = { 
      name: $scope.patients[$index].name, 
      date: $scope.patients[$index].date, 
      number:$scope.patients[$index].number 
     } 
$http.get('/testtwilio3', {params: {name: patient.name, number: patient.number, date: patient.date}}) // PASS THE DATA AS THE SECOND PARAMETER 
    .success(
     function(success){ 
      alert("work"); 
      console.log(success) 
     }) 
    .error(
     function(error){ 

      console.log("error" + error) 
     }); 


    } 

からのコードがある。ここでJSONファイル

[{"name":"John","date":"12/22/2016","number":"781314454"},{"name":"Joe","date":"09/15/2016","number":"7892834640"},{"name":"Mike","date":"08/25/2016","number":"6472329224"},{"name":"Mark","date":"08/06/2016","number":"7819231279"}] 

は、コンソールが表示されているものです。最初の行は削除したい行で、その下の行はアイテムの配列です。

{ name: 'Mark', date: '08/06/2016', number: '7819231279' } 

[ { name: 'John', date: '12/22/2016', number: '781314454' }, 
    { name: 'Nikhilesh Singh', 
    date: '09/15/2016', 
    number: '7892834640' }, 
    { name: 'Mike', date: '08/25/2016', number: '6472329224' }, 
    { name: 'Mark', date: '08/06/2016', number: '7819231279' } ] 

これは私が最初の行の項目はあなたが唯一のdelete(例えばdelete <attrName>)で単一の属性を削除することができます項目

{ name: 'Mark', date: '08/06/2016', number: '7819231279' } 

[ { name: 'John', date: '12/22/2016', number: '781314454' }, 
    { name: 'Nikhilesh Singh', 
    date: '09/15/2016', 
    number: '7892834640' }, 
    { name: 'Mike', date: '08/25/2016', number: '6472329224' } ] 

答えて

2

[EDITED]

delete

オペレータのみオブジェクトからプロパティを削除するためのものです。 config変数にの配列が含まれています。したがって、deleteは、何もしません。

あなたがconfig配列を反復処理し、要求と同じnamedate、およびnumber値を持つ配列項目を削除するにはspliceようなものを使用する必要があります。

This related questionが役に立ちます。

+0

'。/ Public/patients.json'の内容、実際にあなたのコンソールログに戻ってきた内容、そして結果を期待しているもの好き。その情報がなければ、私は多くの推測をしなければならなかった。あなたがしようとしていることについて – cybersam

+0

ちょうどそれを更新しました – srsxyz

+0

それは妥当な解決策のように聞こえる、ありがとう – srsxyz

1

のリストフォーム削除された場所それになりたい方法です。複数の属性を削除する場合は、たとえばlodashのomitを使用できます。

これが役に立ちます。

+0

この感謝をお待ちしています。 – srsxyz

関連する問題