2015-07-21 27 views
0

刪除特定的元件I具有陣列的變量是這樣的:熔接或陣列

dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 

現在我想除去dateArray的前12個元素。我嘗試了下面的代碼,但它不工作。我用splice但我不知道我錯過了什麼。

if(dateArray.length>12){ 
    for(var d= 0; d <12; d++){ 
     dateArray.splice(d); 
    } 
    console.log(dateArray); 
} 

它輸出空數組:[]

我想它刪除只有第12和輸出應該是:

[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 

任何幫助將非常感激。

回答

5

你並不需要一個循環做到這一點

for(var d= 0; d <12; d++){ 
    dateArray.splice(d); 
} 

可能是

dateArray.splice(0, 12); 
+0

節拍我以秒爲單位); – stalem

3

Use splice

dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 
 

 
dateArray.splice(0,12); 
 
    document.body.innerHTML = JSON.stringify(dateArray);

0

你也可以用你想要的值創建一個新的數組。

dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 

dateArray2 = []; 

if(dateArray.length>12){ 
    for(var i= 0; i < 12; i++){ 
     dateArray2[i] = dateArray[i]; 
    } 
    console.log(dateArray); 
    console.log(dateArray2); 
} 

Jsfiddle例如,

0

您可以使用slice函數刪除數組元素。

slice()slice()方法返回一個數組的一部分到一個新的數組對象的淺表副本。

var d2 = dateArray.slice(12, dateArray.length); 
console.log(d2); // [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 
+0

或者'.slice(12)' - 如果你希望一切都在數組的末尾,不需要指定結束元素。 – nnnnnn

0

所有你需要做的是:

dateArray = dateArray.slice(0,12); 
0


嘗試datearray.splice(0, 12)。 0 =起始索引,12 =要移除的元素數量。
ref:splice()
祝你好運!

0

如果你想在同一時間,除去12元,你不使用splice()正確的方法,在這裏正確的使用方法是:

console.log(dateArraysplice(0, 12);); 

如果你想刪除的第一要素一次一個數組,請使用shift()方法。

if(dateArray.length>12){ 
    for(var d= 0; d <12; d++){ 
     dateArray.shift(); 
    } 
    console.log(dateArray); 
} 

兩種方法得到你這個輸出

[31,28,31,30,31,30,31,31,30,31,30,31]