javascript - 如何用多维数组中的整数替换字符串

标签 javascript arrays sorting array.prototype.map

所以我有一个对象数组:

var arr = [
    {name: 'John', cars: '2', railcard: 'yes', preferences: ['taxi', 'tram', 'walking']},
    {name: 'Mary', cars: '0', railcard: 'no', preferences: ['cyling', 'walking', 'taxi']},
    {name: 'Elon', cars: '100000', railcard: 'no', preferences: ['Falcon 9', 'self-driving', 'Hyper-loop']}
];

我正在尝试使用 map、filter 和 reduce 来转换上述数组。尽管我可以轻松地隔离特定数据集,但我在更改原始数组时遇到了问题。

例如:

我正在尝试将每个人拥有的汽车数量更改为数字而不是字符串,所以...

var cars = arr.map(function(arr) {return arr.cars});
var carsToNumber = cars.map(function(x) {return parseInt(x)});

我现在如何替换数组中的原始字符串值?

预期结果:

var arr = [
    {name: 'John', cars: 2, railcard: 'yes', preferences: ['taxi', 'tram', 'walking']},
    {name: 'Mary', cars: 0, railcard: 'no', preferences: ['cyling', 'walking', 'taxi']},
    {name: 'Elon', cars: 100000, railcard: 'no', preferences: ['Falcon 9', 'self-driving', 'Hyper-loop']}
];

最佳答案

您可以只使用forEach 循环并将字符串更改为数字。 map() 方法创建一个新数组。

var arr = [
  {name: 'John', cars: '2', railcard: 'yes', preferences: ['taxi', 'tram', 'walking']},
  {name: 'Mary', cars: '0', railcard: 'no', preferences: ['cyling', 'walking', 'taxi']},
  {name: 'Elon', cars: '100000', railcard: 'no', preferences: ['Falcon 9', 'self-driving', 'Hyper-loop']}
];

arr.forEach(e => e.cars = +e.cars);
console.log(arr)

关于javascript - 如何用多维数组中的整数替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43617467/

相关文章:

algorithm - 使用循环不变量证明归并排序的正确性(初始化、维护、终止)

javascript - 将多个重叠图像保存为单个图像

javascript - 使用 Cordova 将表单发布到 Windows Phone 上的外部 Paypal 窗口

java - 使用重复键快速排序会变得更快(没有三向分区)。到底是怎么回事?

javascript - 如何递归地将嵌套对象数组转换为平面对象数组?

algorithm - 排序中的蝴蝶网络

javascript - 无法在 JavaScript 中访问模型的属性

javascript - 在外部 Javascript 中使用 JQGrid 的表

php - 在php中从数组中获取结果

php - 如何在Mysql中对两个不同的表进行组合和排序