我有var ar = [1, 2, 3, 4, 5]
並希望某些功能getSubarray(array, fromIndex, toIndex)
,致電getSubarray(ar, 1, 3)
的結果是新陣列[2, 3, 4]
。如何從數組中獲取子數組?
回答
var ar = [1, 2, 3, 4, 5];
var ar2 = ar.slice(1, 1 + 3);
print(ar2)
>>2,3,4
一個簡單的使用切片,用我的擴展Array類:
Array.prototype.subarray=function(start,end){
if(!end){ end=-1;}
return this.slice(start, this.length+1-(end*-1));
}
然後:
var bigArr=["a", "b", "c", "fd", "ze"]
Test1的:
bigArr.subarray(1,-1)
< [ 「B」, 「C」, 「FD」, 「澤」]
的Test2:
bigArr.subarray(2,-2)
< [ 「C」, 「FD」]
Test3的:
bigArr.subarray(2)
< [ 「C」, 「FD」, 「澤」]
可能是開發商從其他語言來(.IE:Groovy的)更容易
的問題卻是實實在在的一個新陣列,所以我認爲一個更好的解決辦法是用Abdennour TOUMI's answer克隆功能結合起來:
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]
隨着clone()
功能,你現在可以做到以下幾點:
Array.prototype.subarray=function(start, end) {
if(!end){
end = this.length;
}
var newArray = clone(this);
return newArray.slice(start, end);
};
沒有一個副本,你會失去你的原始數組。
例子:
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]
我不認爲這個切片會改變原始數組。 – Mani
'Array.prototype.slice'已經返回一個副本。 'Array.prototype.splice'修改原始數組。 –
slice()方法返回一個數組的一部分到一個新的數組對象的淺拷貝。請參閱[Mozilla開發者網絡](https://developer.mozilla.org/en-S/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)。 Downvoted。 – TheCrazyProgrammer
var array_one = [11, 22, 33, 44,55];
var ar2 = ar.slice(1, array_one.length-1);
console.log(array_2)
- 1. php從數組中獲取子數組
- 2. 如何從VB.NET中的大數組中獲取子數組?
- 3. 如何從PHP中的數組中獲取「子數組」?
- 4. 從2D double [] []數組獲取子數組
- 5. 如何獲取子數組?
- 6. 從JSON獲取子數組
- 7. 如何從數組中獲取數據
- 8. 如何從數組中獲取數據?
- 9. 如何從數組中的數組中獲取數值?
- 10. 如何獲取數組中的數組?
- 11. 如何讀取字符串數組,從數組中獲取值
- 12. C++中有從數組中獲取子數組的方法嗎?
- 13. android如何從數組中獲取數據json數組
- 14. 如何從遞歸數組內的數組中獲取數據?
- 15. 從數組中獲取數組的值?
- 16. 從數組中獲取子類
- 17. 如何使用Newtonsoft.Json從JSON子數組中獲取數據?
- 18. 如何從數組中的數組中獲取項目
- 19. 如何從numpy 2d數組中提取子數組?
- 20. 如何隨機從數組中獲取
- 21. 如何從數組中獲取鍵值?
- 22. 如何從sql中獲取組數據?
- 23. 如何從數組中獲取值?
- 24. 如何從數組中獲取內容
- 25. 如何從數組中獲取列表
- 26. 如何從php數組中獲取值
- 27. 如何從2d數組中獲取值? -
- 28. 如何從JavaScript數組中獲取值?
- 29. 如何從數組中獲取元素。
- 30. 如何從IEnumerable數據獲取數組?
您是否嘗試過[片段](http://www.w3schools.com/jsref/jsref_slice_array.asp)? –