如何在JavaScript中将数组中的空字符串设置为null
?
我的阵列:
var myarray = [["01.01.2013","a"],["01.02.2013","b"],["01.03.2013",""]]
我需要将第三个元素中的第二个值替换为null
。
我的尝试是检查字符串是否为空,然后将其设置为null
,但这会产生"null"
而不是null
。
答案 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;
})
})