Javascript 如何在多维数组中用整数替换字符串

Javascript 如何在多维数组中用整数替换字符串,javascript,arrays,sorting,array.prototype.map,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:

所以我有一个对象数组:

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=[
{姓名:'John',汽车:'2',铁路卡:'yes',偏好:['taxi','tram','walking']},
{name:'Mary',cars:'0',railcard:'no',首选项:['cyling','walking','taxi']},
{名称:'Elon',汽车:'100000',铁路卡:'no',首选项:['Falcon 9','Auto driving','Hyper loop']}
];
arr.forEach(e=>e.cars=+e.cars);

console.log(arr)
使用
map
执行此操作的方法是返回一个新副本。如果要修改原始数据,请使用简单循环

map
示例:

const updatedArr = arr.map(item => Object.assign({}, item, {cars: +item.cars}))

请添加所需结果。使用所需结果更新代码中有许多语法错误。数组未关闭,某些对象键无效…@Badacadara更正,我刚刚更新了示例,以修复名称字符串和railcard ID不正确的语法错误。。。修改原始文件中存在的同一对象引用