2017-04-05 56 views
0

我的數組打印的是長度而不是其內容。我真的尋找答案,但沒有發現。這裏是我的代碼:數組只打印長度而不是內容

<p id="para"> 

</p> 

var myArray = [1,2,3,4,5]; 

myArray = myArray.unshift('Charlie'); 

document.getElementById('para').innerHTML = myArray; 

我想這個數組打印出來查理,1,2,3,4,5而是它打印出來6.我做錯了什麼在這裏愚蠢的事情?

+4

「unshift()方法將一個或多個元素添加到數組**的開始位置,並返回新數組的新長度。**」https://developer.mozilla.org/zh-cn/ docs/Web/JavaScript/Reference/Global_Objects/Array/unshift –

+1

只需使用myArray.unshift('Charlie'); – Cruiser

+0

有沒有辦法實現Charlie,1,2,3,4,5? – Brixsta

回答

3

讀數the docs for Array.unshift是說它返回數組的長度

unshift()方法將一個或多個元素添加到 數組的開頭,並返回新數組的新長度。

你可能只是想刪除的賦值運算符,像這樣

var myArray = [1, 2, 3, 4, 5]; 
 

 
myArray.unshift('Charlie'); 
 

 
document.getElementById('para').innerHTML = myArray.join(',');
<div id="para"> 
 

 
</div>

+0

myArray = myArray.unshift('Charlie')返回6後面的邏輯是什麼? – Brixsta

+2

@Brixsta我只能說這是它按照標準工作的方式。它在我上面鏈接的文檔中有詳細說明。 unshift方法返回新的長度。 –

+2

@Brixsta在未轉換之前,長度爲* 5 *,但在未轉換之後,長度爲* 6 *,並返回。 –

1

.unshift返回數組的長度。所以你在上面的代碼中所做的將myArray等同於myArray.unshift()的返回值。 myArrays值成爲這是6

數組的長度因此,所有你需要的代碼是

myArray.unshift('Charlie'); 

var myArray = [1,2,3,4,5]; 
 
//console.log(myArray); 
 
myArray.unshift('Charlie'); 
 
document.getElementById('para').innerHTML = myArray;
<p id="para"></p>

提出這個的一個更好的辦法是

var myArray = [1,2,3,4,5]; 
 
//console.log(myArray); 
 
myArray.unshift('Charlie'); 
 
var str=''; 
 
for(var i=0; i<myArray.length; i++) 
 
{ 
 
str=str+myArray[i]+" "; 
 
} 
 
document.getElementById('para').innerHTML = str;
<p id="para"> 
 

 
</p>

+1

對於第二個示例,您可以執行'myArray.join('')'而不是循環 –

+1

您是對的。這是一個更好的方法 – lhavCoder