jQuery将对象值转换为数字

jQuery将对象值转换为数字,jquery,arrays,Jquery,Arrays,我正在尝试将对象值转换为整数: var array = { borderTopLeftRadius:"0px", borderTopRightRadius:"0px", borderBottomLeftRadius:"0px", borderBottomRightRadius:"0px" } 我希望保持相同的结构,但结果应如下所示: var array = { borderTopLeftRadius:0, borderTopRightRadius:0,

我正在尝试将对象值转换为整数:

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);
});

首先,您有一个而不是,您可以使用jQuery方法来实现这一点:

var myObject={
borderTopLeftRadius:“0px”,
borderTopRightRadius:“0px”,
borderBottomLeftRadius:“0px”,
borderBottomRightRadius:“0px”
};
var newObject={};
$.each(myObject、函数(键、值){
newObject[key]=parseInt(值,10);
});
console.log(newObject)

您的
数组
不是数组。JavaScript没有关联数组,它有对象——这就是您所拥有的

jQuery的函数可以处理数组和对象,但它只返回数组。因此,对象将转换为数组

您可以循环对象的键,并使用整数值构建新对象:

var newArray = {};
Object.keys(array).forEach(function(key){
    newArray[key] = parseInt(array[key], 10);
});

您可以使用
for
循环来实现结果

var数组={
borderTopLeftRadius:“0px”,
borderTopRightRadius:“0px”,
borderBottomLeftRadius:“0px”,
borderBottomRightRadius:“0px”
}
for(数组中的var键){
array[key]=parseInt(array[key],10);
}

console.log(数组)旁注:您的
数组实际上不是数组。这是一个对象。是的,它在标题和描述中也有说明。@Alko但你正在尝试映射一个对象…?@Andrewi:
parseInt(“0px”,10)
按预期工作。@RocketHazmat是的,忘记了如果数字是字符串中的第一个东西,非数字会被剥离。谢谢,它工作得很好。我已经接受了你的回答。我从来没有说过我要转换数组。标题表示一个对象。只是因为我命名了变量数组,它并不是这个意思。这是为了演示的目的。只是想澄清一下,alko的人很困惑,因为你使用了数组标签,这表明这篇文章是关于数组的。变量名应该是暗示变量所包含的内容。