好吧我知道他们不是javascript中的2d数组,但数组可以包含数组,所以它就像一个二维数组。无论如何,我有一个2d数组,它在新行中吐出一个逗号。我想知道你怎么删除它?
这是我的HTML
<form>
<h1>Please enter data</h1>
<input id="names" type="text" placeholder="Name" />
<input id="zipcodes" type="text" placeholder="Zip code" />
<input type="button" value="Save" onclick="insertData()" /> <br />
<input type="button" value="Display" onclick="displayData()" />
</form>
<div id="display"></div>
我的JavaScript
var namePlusZip = [[]];
var nameInput = document.getElementById("names");
var zipInput = document.getElementById("zipcodes");
var displayBox = document.getElementById("display");
function insertData() {
namePlusZip.push([nameInput.value, zipInput.value]);
delete namePlusZip[0];
nameInput.value = "";
zipInput.value = "";
}
function displayData(){
displayBox.innerHTML = "";
for (var i=0, l=namePlusZip.length; i<l; i++){
if (namePlusZip[i] instanceof Array){
namePlusZip[i] = namePlusZip[i].join(", ") + "</br>";
}
}
displayBox.innerHTML += "Names and zip codes: " + namePlusZip;
}
这是输出。
// Names and zip codes:
// ,bobby, 12345
// ,tammy, 45677
// ,cindy, 34512
注意开头的逗号。你怎么摆脱它?
答案 0 :(得分:1)
您可以使用join('')
。
代码:
displayBox.innerHTML += "Names and zip codes: " + namePlusZip.join('');
答案 1 :(得分:1)
如果你声明你的初始数组:
var namePlusZip = [[]];
然后在那里推出一个新数组:
namePlusZip.push('one', 'two')
你的数组看起来像这样:
[[], ['one', 'two']]
如果您粘贴到控制台行:
[[], ['one', 'two']].join(',')
你会得到这个:
",one,two"
您不必像[[]]那样声明数组,只需要[]就足够了
另外,我认为你的功能有点不对劲。试试这个:
function displayData(){
displayBox.innerHTML = "";
var output = ''
for (var i=0, l=namePlusZip.length; i<l; i++){
if (namePlusZip[i] instanceof Array){
console.log(namePlusZip[i]);
var k = namePlusZip[i];
t = k.join(',')
console.log(t);
output += t + "</br>";
}
}
displayBox.innerHTML += "Names and zip codes: " + output;
}