KnockoutJSでIndexOf()メソッドを使用した例は、すべて基本的な文字列型です。私が知りたいのは、オブジェクト変数の1つに基づいて、オブジェクトである配列のインデックスを返す方法です。KnockoutJSでindexOfを使用する方法
32
A
答えて
61
observableArrayはindexOf
というメソッドを公開します。これはラベラーでko.utils.arrayIndexOf
になります。このメソッドは、渡されたアイテムを探して配列をループします。
var viewModel = {
items: ko.observableArray([{id: 1, name: "one"}, {id:2, name: "two"}])
};
var item = viewModel.items()[1];
console.log(viewModel.items.indexOf(item)); //equals 1
あなただけのキーのようなものを持っている場合は、KOがちょうど一致しようとしている配列をループko.utils.arrayFirst
というユーティリティ機能を持っている:あなたはあなたができるアイテムを持っているのであれば
、あなたがそれに渡す条件。ただし、アイテムのインデックスではなくアイテムを返します。配列を2回通過するように、オブジェクトを取得してindexOfを呼び出すのは、やや非効率です。あなたは、自分だけが正しいアイテムを探してループを記述するかのようになりますko.utils.arrayFirstに基づいて、一般的な機能書くことができ
:今
function arrayFirstIndexOf(array, predicate, predicateOwner) {
for (var i = 0, j = array.length; i < j; i++) {
if (predicate.call(predicateOwner, array[i])) {
return i;
}
}
return -1;
}
を、あなたは、配列、条件を渡すことができます、一致する最初の項目のインデックスが返されます。
var viewModel = {
items: ko.observableArray([{
id: 1,
name: "one"},
{
id: 2,
name: "two"}])
};
var id = 2;
console.log(arrayFirstIndexOf(viewModel.items(), function(item) {
return item.id === id;
})); //returns 1
関連する問題
- 1. JavaでIndexof()メソッドを使用する方法
- 2. 翡翠でindexOfを使用する
- 3. IndexOfをCultureInfoで使用するArgumentOutOfRangeException 1031
- 4. KnockoutJSでhtmlをデコードする方法
- 5. jqGridでknockoutjsを使用する
- 6. knockoutjsを使用したオンロードバインディング?
- 7. 複数のキーと値のペアを持つHashMapを含むListでindexOfを使用する方法
- 8. indexOfとの比較の使用
- 9. IndexOfを使用してコンボボックスを検索する
- 10. 良い表現方法でKnockoutJSを観測可能にする
- 11. .ajaxデータでknockoutjsビューモデルを初期化する方法
- 12. knockoutjsで入力タイプ= 'email'をバインドする方法
- 13. indexOfを使用してdataProviderにアクセスする
- 14. NumberFormatを使用すると、Equals()とindexOf()が動作しない
- 15. KnockoutJSを複数のページで使用する
- 16. デタッチされたノードでKnockoutJSを使用する
- 17. foreach(KnockoutJS)内のバインディングを使用して
- 18. KnockoutJS - アニメーションを追加するためにカスタムバインディングを使用する
- 19. indexOfを使用してセレクタを取得することは可能ですか?
- 20. indexofを使用して文字列のパターンを見つける
- 21. 右マウスボタンにバインドする方法knockoutJsをクリックしますか?
- 22. imap_searchで 'ALL'を使用する方法と使用方法
- 23. knockoutjsを使用して階層(ツリー)を表示する
- 24. KnockoutJSを使用してiframeのコンテンツをデータバインドする方法はありますか?
- 25. 計算されたobservableをknockoutjsマッピングに追加する方法
- 26. KnockoutJSの個々のカートアイテムの数量を選択する方法
- 27. KnockoutJS observableArrayを更新する適切な方法AJAX
- 28. 既存のDOM要素をKnockoutJSビューモデルにバインドする方法
- 29. knockoutjs protected observable with checkboxを使用するには?
- 30. knockoutjsを使用してテキストを複数形にする方法はありません
例ではitem.id === idを返さないでください。 return item.id()=== id ;?私はこれに非常に近い何かをしようとしていて、()を持っていなければならなかった。 – NullReference
'id'が観測可能かどうかだけで決まります。この場合はそうではありませんが、あなたのように聞こえます。 –