【问题标题】:How do I replace a string with integers in a multi-dimensional array如何用多维数组中的整数替换字符串
【发布时间】:2017-09-22 20:51:30
【问题描述】:

所以我有一个对象数组:

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']}
];

【问题讨论】:

  • 请添加想要的结果。
  • 更新为期望的结果
  • 您的代码中有很多语法错误。数组未关闭,某些对象键无效...
  • @Badacadabra 正确,我刚刚更新了示例以修复名称字符串和铁路卡 ID 周围的语法错误

标签: javascript arrays sorting array.prototype.map


【解决方案1】:

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

map 示例:

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

【讨论】:

  • 不正确...修改原始中存在的相同对象引用
【解决方案2】:

您可以只使用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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2018-08-08
    • 2010-11-07
    • 2014-10-15
    • 2014-10-07
    相关资源
    最近更新 更多