2016-06-01 4 views
1

こんにちは私はAngular2とTypescriptを使用している間、配列の特定のインデックスを削除しようとしています。私は値からインデックスを取得したいと思います。私の配列が正常に宣言されてAngular2 IndexOf配列の値を検索して削除する

...

RightList = [ 
    'Fourth property', 
    'Fifth property', 
    'Sixth property', 
] 

私は私の削除機能を設定するための基本的な前提から始めます。

 removeSel(llist: ListComponent, rlist:ListComponent){ 
     this.selectedllist = llist; 
console.log(JSON.stringify(this.selectedllist)); // what is to be searched turned into a string so that it may actually be used 

私のJSON.Stringifyの私のconsole.logは、私が削除しようとしている値が "Sixth property"であることを伝えています。しかし、次のコードを使用して配列内でこの値を検索しようとしました。 -1を返します。これは、配列に自分の値が見つからないことを意味します。私の出力で

var rightDel = this.RightList.indexOf((JSON.stringify(this.selectedllist))); // -1 is not found 1 = found 
     console.log(rightDel); 

それが検索されるが、配列

CONSOLE OUTPUT: 
    "Sixth property" // Item to be searched for 
-1 // not found 

でアイテムが見つからないアイテムを返しませんコンソールへの私の機能の私の実装で間違った何かがあります配列を検索する? JSON文字列化された文字列リテラルを囲む引用符をエンコードするためです

JSON.stringify(this.selectedllist) !== this.selectedllist 

ので

答えて

1

はもちろんのindexOfが配列であなたのアイテムを見つけることができません、その元の文字列はありません。これは、テストに簡単です:

var a = 'test'; 
 
console.log(JSON.stringify(a), a, JSON.stringify(a) === a)

JSON.stringifyを削除し、それが動作するはずです。一般的に、何かをString型にキャストするには、.toString()メソッドを使用するか、単にString(something)にラップしてください。

関連する問題