将JavaScript对象属性值的数组转换为int

将JavaScript对象属性值的数组转换为int,javascript,arrays,Javascript,Arrays,将JavaScript属性值数组转换为int最干净的方法是什么?(希望所有a属性都是int) 您可以使用:myArray.map(..) 或者,如果只想就地修改特性: myArray.forEach(function(obj) { obj.a = parseInt(obj.a); }); //use myArray here; it has been modified above. 顺便说一句,如果可以的话,你更喜欢第一个版本。就个人而言,我喜欢对象不可变的情况。标准循环: for

将JavaScript属性值数组转换为int最干净的方法是什么?(希望所有
a
属性都是int)


您可以使用:
myArray.map(..)

或者,如果只想就地修改特性:

myArray.forEach(function(obj) {
      obj.a = parseInt(obj.a);
});
//use myArray here; it has been modified above.
顺便说一句,如果可以的话,你更喜欢第一个版本。就个人而言,我喜欢对象不可变的情况。

标准循环:

for (i=0; i< myArray.length; i ++){
    myArray[i].a = parseInt(myArray[i].a,10)     
}
for(i=0;i
非常奇怪的问题,您可以遍历所有属性并调用每个parseInt。是否要将对象数组转换为单个int?怎么用?把它们加起来?或者你只想转换
a
属性(因为我不知道你希望如何处理
“hits”
“hits”的
b
属性)不再有人读了,它清楚地说明了“所有
a
属性都使用parseInt转换为int”对不起,我希望所有的a属性都是int。parseInt很好。我希望使用map来实现这一点。@kingkongprog:我个人认为我宁愿使用循环(
forEach
)来避免复制其他属性。现在只有一个,但是如果它以后扩展,您不必担心更新
map
函数。此外,使用
parseInt(string,10)
几乎总是更好(即显式说明您的基数)。看起来不错,但它确实创建了一个包含所有新对象的新数组,它不只是更改值,如果是这样的话important@NikitaBaksalyar,同意。我希望OP能听到你的评论。Adeneo:编辑了我的答案。虽然你的第二段代码可以工作,但是使用函数修改
map
中的对象是个坏主意。使用map应用于对象数组的函数不会修改对象。他们返回一个带有适当更改的全新克隆。我建议您使用
forEach
而不是
map
@主人把地图移走了。
myArray.forEach(function(obj) {
      obj.a = parseInt(obj.a);
});
//use myArray here; it has been modified above.
for (i=0; i< myArray.length; i ++){
    myArray[i].a = parseInt(myArray[i].a,10)     
}