即时通讯使用lodash,我试图转换字符串中的数字数组,但只转换数字,因为在我的数组中有空值。我尝试使用lodash的地图而不是javascript的地图,但是搞乱了空值。
数组示例: [1245,5845,4585,null,null]
代码:
var meds = _.map(lines,'med_id').map(String);
结果:[“1245”,“5845”,“4585”,“null”,“null”];
应该是:[“1245”,“5845”,“4585”,null,null];
答案 0 :(得分:4)
您需要在调用String
var meds = _.map(lines, 'med_id').map(function(x) {
return typeof x == 'number' ? String(x) : x;
});
答案 1 :(得分:2)
那是因为String
会将所需的任何内容转换为字符串。如果值不为空,则需要创建仅生成字符串的自定义函数。
_.map(lines, 'med_id').map(function(x) {
if (x !== null) {
x = x.toString();
}
return x;
});
答案 2 :(得分:-1)
查看:https://lodash.com/docs#map
看起来像:
function toInts(n){
if(isNaN(n)){
return null;
}else{
return n;
}
}
_.map(lines,'med_id').map(lines,toInts);
会做到这一点。 (未经测试)