Javascript在map()函数中使用函数Number()将字符串转换为数字
我想转换对象数组观察列表中给出的imdb评级。我正在尝试使用映射函数,但它没有发生。新列表只给出旧列表,没有任何更改。我做错了什么Javascript在map()函数中使用函数Number()将字符串转换为数字,javascript,function,dictionary,reduce,Javascript,Function,Dictionary,Reduce,我想转换对象数组观察列表中给出的imdb评级。我正在尝试使用映射函数,但它没有发生。新列表只给出旧列表,没有任何更改。我做错了什么 var watchList = [ { "Metascore": "74", "imdbRating": "8.8", "imdbVotes": "1,446,708", "im
var watchList = [
{
"Metascore": "74",
"imdbRating": "8.8",
"imdbVotes": "1,446,708",
"imdbID": "tt1375666",
"Type": "movie",
"Response": "True"
},
{
"Metascore": "74",
"imdbRating": "8.6",
"imdbVotes": "910,366",
"imdbID": "tt0816692",
"Type": "movie",
"Response": "True"
},
{
"Metascore": "82",
"imdbRating": "9.0",
"imdbVotes": "1,652,832",
"imdbID": "tt0468569",
"Type": "movie",
"Response": "True"
}
];
let newList=[];
newList=watchList.map(function(list){
Number(list.imdbRating);
return list;
});
console.log(newList);
仅声明
Number
不会改变原始值。如果希望对象的属性的imdbRating
为数字,则必须将其赋值
var-watchList=[{“Metascore”:“74”,“imdbRating”:“8.8”,“imdbVotes”:“1446708”,“imdbID”:“tt1375666”,“Type”:“movie”,“Response”:“True”;“movie”,“Response”:“True”;“Metascore”:“74”,“imdbRating”:“8.6”,“imdbRating”:“910366”,“imdbID”:“tt0816692”,“Type”:“movie”,“Response”:“True”},{“Metascore”:“82”,“imdbRating”:“9.0”,“imdbVotes”:“1652832”,“imdbID”:“tt04569”,“Type”movie,“响应”:“真”}];
forEach(函数(列表){
list.imdbRating=编号(list.imdbRating);
});
console.log(watchList);
如果需要从字符串到整数的快速转换,可以使用+
运算符
例如:
var newList=[];
newList=watchList.map(function(list){
list.imdbRating = +list.imdbRating;
return list;
});
Number(list.imdbRating);
创建一个数字…然后忽略结果trylist.imdbRating=Number(list.imdbRating);
我要强调一个事实,即您(正确地)使用了forEach
,而不是不适当的映射:p但让forEach
生成一个不必要的返回。