我的数组正在打印长度而不是其内容。我真的寻找答案但没有找到答案。这是我的代码:
<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.我在这里做错了什么蠢事?
答案 0 :(得分:3)
阅读the docs for Array.unshift表示它返回数组的长度。
unshift()方法将一个或多个元素添加到一个开头 array并返回新数组的新长度。
你可能只想删除这样的赋值运算符
var myArray = [1, 2, 3, 4, 5];
myArray.unshift('Charlie');
document.getElementById('para').innerHTML = myArray.join(',');
&#13;
<div id="para">
</div>
&#13;
答案 1 :(得分: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;
&#13;
<p id="para"></p>
&#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;