将数组转换为不同的类型(lodash / js)

时间:2016-05-20 13:50:10

标签: javascript arrays type-conversion lodash

逐个转换数组中每个元素类型最直接的方法是什么?

例如,如果我有:

var a = ["2013", "72", "68", "76", "75", "76", "73"]

如何将a转换为以下内容,将第一项保留为字符串并将其余项转换为整数:

["2013", 72, 68, 76, 75, 76, 73]

在lodash中,我可以管理_.map(_.values(record), _.toNumber)将整个数组转换为数字,但是如何映射到数组中的每个项目?

4 个答案:

答案 0 :(得分:3)

Array#map与循环索引一起使用。

var a = ["2013", "72", "68", "76", "75", "76", "73"];
		
a = a.map(function (b, i) {
    return i ? Number(b) : b;
});

console.log(a);

答案 1 :(得分:2)

使用lodash方法maptoNumber并检查不是数组中的第一个:

var a = ["2013", "72", "68", "76", "75", "76", "73"];
var result = _.map(a, function(v) {
    return a[0] !== v ? _.toNumber(v) : v;
});
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.min.js"></script>

答案 2 :(得分:0)

这样的事情可能是:

<div>

答案 3 :(得分:0)

var a = ["2013", "72", "68", "76", "75", "76", "73"]
var b = a.map(function(item) {
  if (item.length === 4) {
    return item;
  } else {
    return parseInt(item, 10);
  }
});
console.log(b)