jQuery将对象值转换为数字

时间:2016-12-15 17:24:42

标签: jquery arrays

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

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

3 个答案:

答案 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循环

来获得结果

&#13;
&#13;
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;
&#13;
&#13;