lodash将对象值(字符串)转换为数字

SBB*_*SBB 0 javascript lodash

我有一个非常简单的对象,如下所示.我正在尝试使用,lodash因为我在我的应用程序的其他部分使用它.我试图找到一种方法将特定键的值转换为数字.

在下面的示例中,类似于:

_.mapValues(obj.RuleDetailID, _.method('parseInt'))
Run Code Online (Sandbox Code Playgroud)

宾语:

var obj = [{
  "RuleDetailID": "11624",
  "AttributeValue": "172",
  "Value": "Account Manager",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11626",
  "AttributeValue": "686",
  "Value": "Agent",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11625",
  "AttributeValue": "180",
  "Value": "Analyst",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11629",
  "AttributeValue": "807",
  "Value": "Individual Contributor",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11627",
  "AttributeValue": "690",
  "Value": "Senior Agent",
  "IsValueRetired": "0"
}];
Run Code Online (Sandbox Code Playgroud)

预期产出:

var obj = [{
  "RuleDetailID": 11624,
  "AttributeValue": "172",
  "Value": "Account Manager",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": 11626,
  "AttributeValue": "686",
  "Value": "Agent",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": 11625,
  "AttributeValue": "180",
  "Value": "Analyst",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": 11629,
  "AttributeValue": "807",
  "Value": "Individual Contributor",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": 11627,
  "AttributeValue": "690",
  "Value": "Senior Agent",
  "IsValueRetired": "0"
}];
Run Code Online (Sandbox Code Playgroud)

是否有一系列方法可以与之lodash共同实现这一目标?

ale*_*mac 8

如果要改变原始数组,请使用lodash#each:

_.each(obj, item => item.RuleDetailID = parseInt(item.RuleDetailID, 10));
Run Code Online (Sandbox Code Playgroud)

如果你想创建一个新的数组(不变异原阵列),使用lodash#map具有lodash#clone:

let newArr = _.map(obj, item => {
  let newItem = _.clone(item);
  newItem.RuleDetailID = parseInt(newItem.RuleDetailID, 10);
  return newItem;
});
Run Code Online (Sandbox Code Playgroud)