Mam var ar = [1, 2, 3, 4, 5]
i chcę mieć pewną funkcję getSubarray(array, fromIndex, toIndex)
, że wynikiem połączenia getSubarray(ar, 1, 3)
jest nowa tablica [2, 3, 4]
.Jak uzyskać subarray z tablicy?
Odpowiedz
Spójrz na Array.slice()
var ar = [1, 2, 3, 4, 5];
var ar2 = ar.slice(1, 1 + 3);
print(ar2)
>>2,3,4
prostego stosowania plaster, używać rozszerzenie Array klasy:
Array.prototype.subarray=function(start,end){
if(!end){ end=-1;}
return this.slice(start, this.length+1-(end*-1));
}
wówczas:
var bigArr=["a", "b", "c", "fd", "ze"]
Test1:
bigArr.subarray(1,-1)
< [ "B", "C", "fd", "ZE"]
Test2:
bigArr.subarray(2,-2)
< [ "C", "fd"]
Test3:
bigArr.subarray(2)
< [ "c", "fd", "ZE"]
może być łatwiejsze dla twórców pochodzących z innych języków (.ie: Groovy)
pytanie faktycznie prosząc o Nowe tablica, więc uważam, że lepszym rozwiązaniem byłoby połączenie Abdennour TOUMI's answer z funkcji klon:
function clone(obj) {
if (null == obj || "object" != typeof obj) return obj;
var copy = obj.constructor();
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
}
return copy;
}
[http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object]
Dzięki funkcji clone()
, można wykonać następujące czynności:
Array.prototype.subarray=function(start, end) {
if(!end){
end = this.length;
}
var newArray = clone(this);
return newArray.slice(start, end);
};
Bez kopii utracisz oryginalną tablicę.
Przykład:
var array = [1,2,3,4,5];
console.log(array.subarray(2)); //print the subarray [3, 4, 5, subarray: function]
console.log(array); //print the original array [1, 2, 3, 4, 5, subarray: function]
Nie sądzę, że plaster zmieni oryginalną tablicę. – Mani
'Array.prototype.slice' zwraca już kopię. 'Array.prototype.splice' modyfikuje oryginalną tablicę. –
Metoda slice() zwraca płytką kopię fragmentu tablicy do nowego obiektu tablicy. Zobacz [Mozilla Developer Network] (https://developer.mozilla.org/en-S/docs/Web/JavaScript/Reference/Global_Objects/Array/slice). Wycofane. – TheCrazyProgrammer
var array_one = [11, 22, 33, 44,55];
var ar2 = ar.slice(1, array_one.length-1);
console.log(array_2)
- 1. PHP sortowania tablicy alfabetycznie używając wartości subarray
- 2. Kadaně, aby znaleźć subarray z maksymalną sumą
- 3. Jak zwrócić najwyższą wartość z tablicy wielowymiarowej?
- 4. Oceń macierz na specyficznej subarray
- 5. Jak uzyskać klasę skojarzoną z typem tablicy?
- 6. Jak uzyskać wymiar (wycinek) z wielowymiarowej tablicy
- 7. Jak uzyskać kolumnę z tablicy 2D java?
- 8. JavaScript: jak uzyskać wartości z tablicy wielowymiarowej?
- 9. PHP Sortuj tablicę według SubArray Wartość
- 10. uzyskać moduł wyliczający z tablicy
- 11. Zdobądź konkretny element z każdej podrzędnej tablicy
- 12. PHP: Jak uzyskać elementu z tablicy z kluczem jak
- 13. Subarray minimalnej sumy w O (N) według algorytmu Kadane'a
- 14. Czy możesz uzyskać wartość z tablicy bez pobierania tablicy?
- 15. Minimalna Subarray który jest większy niż Key
- 16. Jak uzyskać formularz tablicy wejściowej do tablicy PHP
- 17. Próbuję uzyskać wartość tablicy z postu
- 18. uzyskać liczbę wartości w tablicy z smarty
- 19. Jak uzyskać długość tablicy wskaźnika C?
- 20. Jak uzyskać rozmiar tablicy przekazywanej do funkcji?
- 21. Jak uzyskać rozmiar pamięci tablicy dynamicznej?
- 22. C++ Jak uzyskać długość tablicy wskaźnika?
- 23. Jak uzyskać tekst z pliku do tablicy w php
- 24. Jak uzyskać zagnieżdżoną listę HTML z zestawu rekordów tablicy obiektów?
- 25. Jak uzyskać różne wartości z tablicy w języku C#?
- 26. Jak uzyskać dostęp do pojedynczego znaku z tablicy łańcuchów wc?
- 27. Jak uzyskać właściwość obiektu z każdego obiektu w tablicy?
- 28. Jak mogę uzyskać klucze `json_encode()` z tablicy PHP?
- 29. Jak uzyskać wartości z tablicy numpy pomocą wielu wskaźników
- 30. Jak uzyskać wartości określonego klucza z tablicy niestandardowych obiektów modelu
Czy próbowałeś [plasterek] (http://www.w3schools.com/jsref/jsref_slice_array.asp)? –