Na przykład zmienna o nazwie arrayElements typu array zawiera [1,2,3,4].JavaScript - Uzyskaj pozycję elementu tablicy
Jak uzyskać pozycję, która ma wartość "3" w zmiennej tablicowej oprócz użycia pętli?
dzięki.
Na przykład zmienna o nazwie arrayElements typu array zawiera [1,2,3,4].JavaScript - Uzyskaj pozycję elementu tablicy
Jak uzyskać pozycję, która ma wartość "3" w zmiennej tablicowej oprócz użycia pętli?
dzięki.
należy rozważyć użycie indexOf
, zwraca pozycję opartą na 0 elementu w tablicy.
np.
[1,2,3,4].indexOf(3); // produces 2
Należy zauważyć, że ta metoda nie jest dostępna w IE 8 i poniżej.
Albo proste użycie pętli for:
function getPosition(elementToFind, arrayElements) {
var i;
for (i = 0; i < arrayElements.length; i += 1) {
if (arrayElements[i] === elementToFind) {
return i;
}
}
return null; //not found
}
getPosition(3, [1, 2, 3, 4]);
jQuery zapewnia yout z "inArray" funkcjonalność podobna do PHP:
var a = [1,2,3,4];
console.log(jQuery.inArray(3, a)); //returns 2
Jeśli już przy użyciu jQuery w projekcie, to byłaby droga! jQuery używa indexOf (najszybsze rozwiązanie), jeśli to możliwe i wraca do rozwiązania opartego na pętli, jeśli nie.
Jak zostało już wskazane przez niektórych odpowiedzi, tablice w nowszych przeglądarkach mają metody jak indexOf
map
i forEach
że są bardzo wygodne dla uniknięcia pisanie wiele for-pętle.
Jeśli trzeba wspierać starych środowisk bez tych funkcji bym zalecamy użyciu biblioteki (lub pisząc na własny) do realizacji tych bardzo typowych operacji tablicowych (niby jak soc sugerowane).
var arrayfn = (function(){
var M = {};
M.indexOf = function(array, item){ ... };
M.contains = function(array, item){ return M.indefOf(array, item) !== -1; };
M.map = function(array, callback){ ... };
}());
arrayfn.contains([1,2,3], 2);
Najbardziej popularne struktury JS powinny już mieć większość z tych wbudowanych. Pamiętam, że Dojo, jQuery i Underscore mają niektóre z tych funkcji, na przykład.
Jeśli tablica była [1, 2, 3, 4, 3], w jaki sposób uzyskałbyś pozycję obu 3s na dwóch różnych zmiennych? – CPC
Dla odniesienia można użyć metody Array.reduce, aby zwrócić tablicę zawierającą położenie wielu elementów. Poniższy kod zwraca tablicę pozycji [2,4] - pozycję obu 3s. var array = [1, 2, 3, 4, 3] .reduce (function (array, n, i) {if (n === 3) array.push (i); return array;}, []); – RepeatQuotations