我有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. 从2D double [] []数组获取子数组
- 3. 如何获取数组中的数组?
- 4. android如何从数组中获取数据json数组
- 5. 如何从递归数组内的数组中获取数据?
- 6. 从数组中获取子类
- 7. 如何从numpy 2d数组中提取子数组?
- 8. 如何从php数组中获取值
- 9. 如何从2d数组中获取值? -
- 10. 如何从sql中获取组数据?
- 11. 如何从数组中获取内容
- 12. 如何从NSMutableDictionary中获取NSmutable数组?
- 13. 如何随机从数组中获取
- 14. 获取字符数组的子数组
- 15. 如何从URL获取数组参数?
- 16. (C++)如何从数组中获取没有嵌套循环的子数组?
- 17. 如何从关联数组中获取数组的值?
- 18. 如何从响应数组中获取对象数组值
- 19. 如何从按钮数组中获取特定数组值
- 20. 如何从JSON数组中获取字符串数组?
- 21. PHP如何从两个数组中获取新数组?
- 22. 如何从多个数组中获取最后一个数组?
- 23. 如何从WordPress中的用户ID数组中获取帖子?
- 24. 从strings.xml中获取数组
- 25. 从数组中获取CGRect
- 26. 从数组中获取MongoId
- 27. 我如何从父类别数组中获取子类别
- 28. 如何矢量化使用索引数组获取numpy数组的子数组
- 29. 获取数组[X,Y]子
- 30. iOS,如何从数组中使用子数组获得子阵列Range
您是否尝试过[片段](http://www.w3schools.com/jsref/jsref_slice_array.asp)? –