我正在尝试将对象值转换为整数:
var array = {
borderTopLeftRadius:"0px",
borderTopRightRadius:"0px",
borderBottomLeftRadius:"0px",
borderBottomRightRadius:"0px"
}
我想保持相同的结构,但结果应如下所示:
var array = {
borderTopLeftRadius:0,
borderTopRightRadius:0,
borderBottomLeftRadius:0,
borderBottomRightRadius:0
}
我一直在使用$map
来做这件事,但我无法让它发挥作用
var newArray = $.map(array, function(value){
return parseInt(value, 10);
});
答案 0 :(得分:3)
首先你有 Object literal {}
而不是 array []
,你可以使用jQuery方法 {{3} } 实现这一点:
var myObject = {
borderTopLeftRadius:"0px",
borderTopRightRadius:"0px",
borderBottomLeftRadius:"0px",
borderBottomRightRadius:"0px"
};
var newObject = {};
$.each( myObject, function( key, value ) {
newObject[key]=parseInt(value, 10);
});
console.log(newObject);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:2)
您的array
不是数组。 JavaScript没有关联数组,它有对象 - 这就是你拥有的。
jQuery的$.map
函数适用于数组和对象,但它只返回数组。因此,您的对象转换成为一个数组。
您可以遍历对象的键并使用整数值构建一个新对象:
var newArray = {};
Object.keys(array).forEach(function(key){
newArray[key] = parseInt(array[key], 10);
});
答案 2 :(得分:0)
您可以使用for
循环
var array = {
borderTopLeftRadius:"0px",
borderTopRightRadius:"0px",
borderBottomLeftRadius:"0px",
borderBottomRightRadius:"0px"
}
for (var key in array) {
array[key] = parseInt(array[key],10);
}
console.log(array);
&#13;