[英]Given an array of json objects, how do I convert values in each object to an int or float?
给定一个json对象数组,如何将每个对象中的值转换为int或float?
var data = [{
"rank": "1",
"name": "Bill"
},
{
"rank": "2",
"name": "Ted"
},
{
"rank": "3",
"name": "John"
},
{
"rank": "4",
"name": "Jane"
}
]
我正在使用的json对象在两个维度上都要大得多,所以我试图找出如何使用map函数将“ rank ”部分从string
转换为int
。 还有其他部分我想转换为浮点数,但现在按“排名”排序1,10,11,12,etc
。
我怎样才能做到这一点? 我正在使用React / ES6 / JSX / Babel,或者任何合并的东西。
您可以简单地映射数据数组并使用您的用户数据返回一个新对象,同时将"rank"
解析为Number
。
您可以在必要时使用parseInt
和parseFloat
。
const data = [ {"rank": "1","name": "Bill"}, {"rank": "2","name": "Ted"}, {"rank": "3","name": "John"}, {"rank": "4","name": "Jane"} ] const formatted = data.map(user => ({ ...user, // collect all the properties of each user rank: parseInt(user.rank) // specifically parse the rank })) console.log('data', data) console.log('formatted', formatted)
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>
您可以使用地图功能
var data = [{"rank": "1","name": "Bill"},
{"rank": "2.4","name": "Ted"},
{"rank": "3","name": "John"},
{"rank": "4.5","name": "Jane"}];
data.map(d => d.rank = +d.rank);
console.log(data);
检查这个 提琴手
您可以使用+运算符转换为int或float。 试试这个:
var data = [ {"rank": "1","name": "Bill"}, {"rank": "2.4","name": "Ted"}, {"rank": "3","name": "John"}, {"rank": "4.5","name": "Jane"}]; data.forEach(d => d.rank = +d.rank); console.log(data);
您可以使用Number将string
转换为number
。
var data = [{ "rank": "1", "name": "Bill" }, { "rank": "2", "name": "Ted" }, { "rank": "3", "name": "John" }, { "rank": "4", "name": "Jane" } ]; var newData = data.map(function (item) { item.rank = Number(item.rank) return item; }); console.log(newData);
您可以使用+
将字符串转换为数字。
var data = [ {"rank": "1","name": "Bill"}, {"rank": "2","name": "Ted"}, {"rank": "3","name": "John"}, {"rank": "4","name": "Jane"}], result = data.map(({rank, name}) => ({rank : +rank, name})); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.