2015-06-16 68 views
0

我有一個叫做MyArray的大數組。這個大陣的大小不會超過250個項目(但它可以少一些)。如何我可以將這個大陣列的數據複製到每個陣列50個項目的更小的塊大小(我想要有5個更小的陣列大小50每個和原始陣列是未觸及的)如何將大數組內容複製到每個大小爲50的5個不同的小數組中?

可以任何一個顯示我如何這可以完成?感謝提前。

var MyArray = new Array(); 
var SmallArray1 = new Array(); 
var SmallArray2 = new Array(); 
var SmallArray3 = new Array(); 
Var SmallArray4 = new Array(); 
Var SmallArray5 = new Array(); 

我的大陣列結構:

MyArray.push({ url: urlValue, filename: NewFileName }); 
+0

使用'for'循環? – Jashaszun

+0

數組對象的'.slice'方法返回一個包含初始數組指定部分的數組對象。 – omegastripes

+0

提示:使它成爲一個小陣列數組,而不是5個不同的變量。 – Bergi

回答

-1

你就不能分配大數組的組件集成到for循環中較小的陣列?

for (i=0;i<51;i++) 
{ 
    bigArray[i] = smallerArray1[i]; 
} 
for (j=51; j<101;j++) 
{ 
    bigArray[i] = smallerArray2[counter]; 
    counter++; 
} 
for (k=101; k<151;k++) 
{ 
    bigArray[k] = smallerArray3[counter2]; 
    counter2++; 
} 
+0

我意識到這不是Java,雖然邏輯是有效的 – codingMonster17

+0

事實上,邏輯無效,你的第一個數組將有超過50個條目。你忘了初始化'counter'和'counter2'? – Bergi

1

這個例子應該可以幫助您:

var MyArray = new Array(); 
MyArray.push({url: 'url1', filename: 'fn1'}); 
MyArray.push({url: 'url2', filename: 'fn2'}); 
MyArray.push({url: 'url3', filename: 'fn3'}); 
MyArray.push({url: 'url4', filename: 'fn4'}); 

var SmallArray = MyArray.slice(1, 3); 

alert(SmallArray[0].url); // url2 
alert(SmallArray[1].url); // url3 

在你的情況下,代碼將會像如下:

var SmallArray1 = MyArray.slice(0, 50); 
var SmallArray2 = MyArray.slice(50, 100); 
var SmallArray3 = MyArray.slice(100, 150); 
var SmallArray4 = MyArray.slice(150, 200); 
var SmallArray5 = MyArray.slice(200, 250); 

注意,你有250個元素索引從0到249 。.slice()方法的第一個參數是開始的索引,第二個參數是要結束的索引,直到但不包括。

+0

切片(1,2)中的1和2是數組位置的開始和結束?所以我應該這樣做:var SmallArray1 = MyArray.slice(0,50);和var SmallArray2 = MyArray.slice(50,100);和var SmallArray3 = MyArray.slice(100,150);等等 ? – user1788736

+0

是的,第一個和第二個參數是要切片的數組中的第一個和最後一個索引。 [這裏](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/slice),你可以找到一個描述。 – omegastripes

+1

我添加了這個例子。 – omegastripes

相關問題