使用map

时间:2016-06-01 20:57:41

标签: javascript lodash

即时通讯使用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];

3 个答案:

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

会做到这一点。 (未经测试)