2016-07-20 66 views
-3

對此回答,How do I empty an array in JavaScript?建議將數組長度值設置爲0,所以如果A = [0,0,0,0],那麼A.length = 0應該使A = []但我無法實現與我的代碼,如何在javascript中清除數組?

我覺得我從字面上做是正確的,但是,JavaScript是印刷錯誤的變量

我的代碼是這樣的:

client.fetchCart(localStorage.getItem('lastCartId')).then(function(remoteCart) { 
       console.log(cart); 
       cart.lineItems.length = 0 ; 
       console.log(cart.lineItems.length); 
       console.log(cart.lineItems); 
       client.updateCart(cart); 
      }); 

的車是之前設置的登錄數組長度爲0,然後再次登錄後,但在我的調試中,兩個記錄的購物車都具有相同的lineItems.length。這意味着將其設置爲0 cart.lineItems.length = 0;沒有工作:(

什麼建議?

+2

好我在答案網站 –

+0

上看到了多個解決方案a = []就我所知最好的方式來做到這一點。 – Dellirium

+0

只是爲了好玩:'cart.items = cart.items.slice(cart.items.length)'。但@Dellirium解決方案似乎更好... – TGrif

回答

1

A = [1, 2, 3] 
 
console.log(A); 
 
A.length = 0; 
 
console.log(A);

它清楚地工作。

1

這裏是一個可愛的小腳本u到嘗試和成功運行 :)

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<script type="text/javascript"> 

    function arr() 
    { 
     var a=[1,2,3] 
     alert(a); 
     a=[]; 
     alert(a); 
    } 

</script> 
<body> 
<button onclick="arr()">CLick</button> 
</body> 
</html> 

H無論如何,還有另一個內置函數可以嘗試。

這是根據我的示例a.pop()在循環中,直到數組中的所有元素已被刪除。爲此,它運行一個循環來遍歷所有元素的數組

0

下面是一個數組,也沒有使用循環刪除所有元素的更好的方法是必不可少的,

var ary = [12, 4, 15, 18, 19, 21]; Array.prototype.removeElement = function removeElement(){ var that = this; while(that.length){ that.shift(); } return that; }; console.log(ary.removeElement());