如何防止在将数据推入数组时附加空字符串或null("")值?

时间:2017-12-12 20:16:56

标签: javascript jquery

这里有一个全局变量。 (数组类型)

var obj = [];

我将把输入的值添加到输入。

function firstAddData()
{
    var chozyintime = $('#ri_chozyinTime').val();

    var chozyinArray = [chozyintime];

    obj.push
    (
        {
            "ri_chozyinTime" : chozyinArray,
        }
    );
}

在ri_chozyinTime中输入的数据将存储为数组。

var chozyinArray = [chozyintime];

现在,添加在" ri_chozyinTime"中输入的值。

cur.ri_chozyinTime.push(chozyintime); // cur is obj , chozyintime is input data

但这是一个问题。

因为它还添加了一个空字符串。

例如,当您查看结果时,

 ri_chozyinTime=[, , ]

我的代码应修改哪些部分以删除空字符串?

我试过这个,但失败了。

if(chozyintime != "" || chozyintime != null)
{
    cur.ri_chozyinTime.push(chozyintime);
}

我们如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您的if条件不正确。当chozyintime = ""时,chozyintime != null为真;当chozyintime = null时,chozyintime != ""为真。 因此,您应该使用&&代替||

if(chozyintime != "" && chozyintime != null)
{
    cur.ri_chozyinTime.push(chozyintime);
}

或者你可以这样做:

if(chozyintime)
{
    cur.ri_chozyinTime.push(chozyintime);
}

答案 1 :(得分:0)

这可能是因为chozyintime的值为undefined,既不是""也不是null。一个更好的后卫将是:

if( chozyintime && chozyintime.length > 0 ) {
    cur.ri_chozyinTime.push(chozyintime);
}

答案 2 :(得分:0)

只需检查chozyintime是否为空,然后添加值。



var obj = [];
function firstAddData()
{
    var chozyintime = $('#ri_chozyinTime').val();

    if (chozyintime.trim() != "") {
      var chozyinArray = [chozyintime.trim()];

    obj.push
    (
        {
            "ri_chozyinTime" : chozyinArray,
        }
    );
    }
  
}
  
$('#test').on('click', function(){
  firstAddData();
    console.log(obj)
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="ri_chozyinTime">
<button id="test">push</button>
&#13;
&#13;
&#13;