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的人很困惑,因为你使用了数组标签,这表明这篇文章是关于数组的。变量名应该是暗示变量所包含的内容。