将Array成员设置为null而不是""

时间:2014-04-02 17:43:33

标签: javascript null

如何在JavaScript中将数组中的空字符串设置为null

我的阵列:

var myarray = [["01.01.2013","a"],["01.02.2013","b"],["01.03.2013",""]]

我需要将第三个元素中的第二个值替换为null

我的尝试是检查字符串是否为空,然后将其设置为null,但这会产生"null"而不是null

3 个答案:

答案 0 :(得分:2)

一种可能的方法:

myarray = myarray.map(function(el) {
  return el.map(function(v) {
    return v === '' ? null : v;
  });
});

...但我宁愿用一个简单的检查来做,而不会产生大量的新阵列。

myarray.forEach(function(arr) {
  if (arr[0] === '') arr[0] = null;
  if (arr[1] === '') arr[1] = null;
});

答案 1 :(得分:1)

如果您只是尝试检测空字符串,则无需在code inside if ("") does not execute之后将任何内容设置为null。请按以下方式检查:if (string) { /* string is not empty */ }

否则,如果你真的需要元素为null,那么分配它有什么问题?例如:

> myarray[2][1] = null;
> console.log(myarray[2]);
["01.03.2013", null] 

答案 2 :(得分:1)

在ES6中(当前浏览器支持可忽略不计):

myarray = myarray.map(i => i.map(i => i==='' ? null : i))

在ES5中:

myarray = myarray.map(function(i){
    return i.map(function(i){
        return i==='' ? null : i;
    })
})