如何从javascript中的二维数组中删除开头的逗号?

时间:2015-03-12 07:02:05

标签: javascript arrays

好吧我知道他们不是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

注意开头的逗号。你怎么摆脱它?

2 个答案:

答案 0 :(得分:1)

您可以使用join('')

代替显示数组字符串

代码:

displayBox.innerHTML += "Names and zip codes: " + namePlusZip.join('');

演示:http://jsfiddle.net/0n9ryc3h/

答案 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;
}