Wszystkie przykłady, widzę korzystania z metody IndexOf() w KnockoutJS są podstawowe typy ciągów. Chcę wiedzieć, jak zwrócić indeks tablicy, która jest obiektem, na podstawie jednej ze zmiennych obiektu.Jak korzystać z indexOf w KnockoutJS
Odpowiedz
ObservableArray udostępnia metodę o nazwie indexOf
, która jest opakowaniem do ko.utils.arrayIndexOf
, która po prostu przeplata tablicę w poszukiwaniu elementu, który mu przekazujesz.
Tak więc, jeśli masz pozycję można zrobić:
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
Jeśli tylko coś w rodzaju klucza, następnie KO ma funkcję użytkową o nazwie ko.utils.arrayFirst
że tylko pętle za pośrednictwem tablicy stara się dopasować warunek, że się do niego zaliczasz. Zwraca jednak element, a nie jego indeks. Byłoby trochę nieefektywne, aby uzyskać obiekt, a następnie wywołać indexOf na nim, tak jak zrobiłbyś dwa przejścia przez tablicę.
Mogłeś po prostu napisać pętlę sam poszukuje odpowiedniej pozycji lub napisać funkcję rodzajowe oparte na ko.utils.arrayFirst że wyglądałby następująco:
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;
}
Teraz można przekazać tablicę, warunek , a otrzymasz indeks pierwszego pasującego elementu.
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. Jak korzystać IndexOf w JQuery
- 2. Jak korzystać z chronionych knockoutjs obserwowalnych z polami wyboru?
- 3. Korzystanie z indexOf w Jade
- 4. Jak zintegrować CodeMirror z KnockoutJS?
- 5. coś jak equalsIgnoreCase podczas korzystania z indexOf
- 6. Swift: Drugie wystąpienie z indexOf
- 7. IndexOf z tablicy ciągów w VB.NET
- 8. Javascript indexOf
- 9. Predykat IndexOf?
- 10. Wiele dopasowań ciągów z indexOf()
- 11. Jak warunkowo renderowanie klasę css z knockoutjs
- 12. Jak załadować niestandardowe funkcje KnockoutJS z RequireJS?
- 13. Knockoutjs z jQuery UI Sortable
- 14. Dynamiczny formularz budynku z knockoutjs
- 15. Powiąż datepicker datepicker z knockoutjs
- 16. indexOf nie jest funkcją
- 17. Substring IndexOf in C#
- 18. Knockoutjs wybierz z grupą opcji
- 19. Jak poprawnie zbudować aplikację KnockoutJS?
- 20. JavaScript indexOf ignorować Case
- 21. indexOf na przestrzeni łańcucha
- 22. LINQ indexOf określonego wpisu
- 23. removeAll vs opróżnij tablicę z [] w knockoutjs
- 24. ng-if indexOf z JSON Array
- 25. Jak uzyskać powiązanie elementu DOM z konkretnym obiektem w KnockoutJS?
- 26. Jak powiązać z prawym przyciskiem myszy kliknij w knockoutJs?
- 27. JavaScript indexOf() - jak uzyskać specyficzny wskaźnik
- 28. JavaScript indexOf na tablicy obiektów
- 29. Jak korzystać z obserwowalnych w Durandal?
- 30. Ładowanie strony asynchronicznie w Knockoutjs
W twoim przykładzie nie powinien zwracać item.id === id; be return item.id() === id ;? Próbuję zrobić coś bardzo blisko tego i musiałem(). – NullReference
Zależy tylko, czy 'id' jest obserwowalny czy nie. W tym przypadku tak nie jest, ale brzmi jak dla ciebie. –