首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用多维数组中的整数替换字符串?

如何用多维数组中的整数替换字符串?
EN

Stack Overflow用户
提问于 2017-04-25 17:38:11
回答 2查看 63关注 0票数 1

所以我有一个对象数组:

代码语言:javascript
复制
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,来转换上面的数组。尽管我可以很容易地隔离特定的数据集,但我在更改原始数组时遇到了困难。

例如:

我想把每个人拥有的汽车数量改为一个数字而不是一个字符串,所以.

代码语言:javascript
复制
var cars = arr.map(function(arr) {return arr.cars});
var carsToNumber = cars.map(function(x) {return parseInt(x)});

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

预期结果:

代码语言:javascript
复制
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']}
];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-25 17:42:33

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

代码语言:javascript
复制
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)

票数 2
EN

Stack Overflow用户

发布于 2017-04-25 17:46:08

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

map示例:

代码语言:javascript
复制
const updatedArr = arr.map(item => Object.assign({}, item, {cars: +item.cars}))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43617467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档