私は、JavaScriptのオブジェクトを持っている:文字列を与えられたネストされたオブジェクトから要素を削除する方法は?
var obj = $scope.items[0]; //$scope.items is a plain object
console.log(typeof obj) //object
さて、この後、私はいくつかの再帰を行うと、に追加する(プロパティのチェーン)のパスを取得文字列としてエンコードされ、このようになりますされ、「objの:
str = ".child.splice(" + item_index + ",1)"; //item_index is an integer
これをオブジェクトに適用します。私はそれをこの方法を試してみました:
var objToDelete = obj += str
console.log(typeof objToDelete) //string
私は無地のオブジェクト内の要素を削除しようとしている、と私をハードコード、それならば、それは動作します。この方法:
delete $scope.items[0].child.splice(1,1);
を私が実際にしたいです
delete objToDelete; // *doesn't work*
ただし、 'objToDelete'の型は文字列であるため、これは失敗します。
オブジェクトとして「objToDelete」を保持してこれを動作させるにはどうすればよいですか?
* "おいしい人たち" * ...なぜあなたは私たちの間で女性を除外しますか?イモを下降させる十分な理由。 – trincot
実際に部分的なJavaScriptコードである文字列を収集することは良い考えではありません。そうすれば 'eval'に戻る必要があります。たぶん、あなたはこの文字列を生成するコードを共有することができます。おそらくそのコードの一部を見直さなければならないでしょう。 – trincot
@trincot何故downvoteの理由!感謝します。質問にもっと集中して欲しいです。とにかく、生成される文字列に問題はありません。これを ".child.splice(1,1)"とします。他のアプローチは考えられませんでした。また、複雑な入れ子になったJSONも扱っています。 – sharathChandra