数组仅打印长度而不是内容

时间:2017-04-05 20:05:21

标签: javascript html arrays

我的数组正在打印长度而不是其内容。我真的寻找答案但没有找到答案。这是我的代码:

<p id="para">

</p>

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

myArray = myArray.unshift('Charlie');

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

我希望这个数组打印出Charlie,1,2,3,4,5,但是它打印出来6.我在这里做错了什么蠢事?

2 个答案:

答案 0 :(得分:3)

阅读the docs for Array.unshift表示它返回数组的长度

  

unshift()方法将一个或多个元素添加到一个开头   array并返回新数组的新长度。

你可能只想删除这样的赋值运算符

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

myArray.unshift('Charlie');

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

</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

.unshift返回数组的长度。所以你在上面的代码中所做的就把myArray等同于myArray.unshift()的返回值。 myArrays值变为数组的长度为6

所以你需要编码的是

myArray.unshift('Charlie');

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

更好的表现方式是

&#13;
&#13;
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;
&#13;
<p id="para">

</p>
&#13;
&#13;
&#13;