Javascript 使用下划线更改数组中所有对象的值
我有一个对象数组,其中包含一个名为“memory”的属性,其值在Javascript 使用下划线更改数组中所有对象的值,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,我有一个对象数组,其中包含一个名为“memory”的属性,其值在MB中。我需要将包含对象的数组转换为GB中的“memory”值。如何使用underline.js实现这一点 代码如下: var parseSize = function(obj){ if (obj === 0 ){ return 0; } else { return parseFloat(obj/1024).toFixed(2); } } var testData=[
MB
中。我需要将包含对象的数组转换为GB
中的“memory”值。如何使用underline.js
实现这一点
代码如下:
var parseSize = function(obj){
if (obj === 0 ){
return 0;
} else {
return parseFloat(obj/1024).toFixed(2);
}
}
var testData=[
{ name: 'ddd',Vcpu: 2, memory: 4096, os: 'Microsoft Windows Server 2008 (32-bit)'},
{ name: 'eee',Vcpu: 2, memory: 2040, os: 'Microsoft Windows Server 2008 (32-bit)'},
{ name: 'ddd',Vcpu: 2, memory: 4096, os: 'Microsoft Windows Server 2008 (32-bit)'},
{ name: 'eee',Vcpu: 2, memory: 2040, os: 'Microsoft Windows Server 2008 (32-bit)'}
];
testData =_.invoke(testData , function(){
testData['memory'] = parseSize(testData['memory']) + " GB";
});
console.log(testData);
上述代码不起作用。请告诉我哪里出了问题
添加JSFIDLE链接:您可以使用。这是自ES5以来内置在JavaScript中的:
var result = testData.map(function(x) {
x.memory = parseSize(x.memory) + ' GB'
return x
})
你可以用。这是自ES5以来内置在JavaScript中的:
var result = testData.map(function(x) {
x.memory = parseSize(x.memory) + ' GB'
return x
})
您的代码中出现了哪些错误的答案:
。
testData
testData
中的每个项目上访问“memory”
属性,而不是在testData
本身上_.each(testData , function(datum){
datum['memory'] = parseSize(datum['memory']) + " GB";
});
console.log(testData);
您的代码中出现了哪些错误的答案:
。
testData
testData
中的每个项目上访问“memory”
属性,而不是在testData
本身上_.each(testData , function(datum){
datum['memory'] = parseSize(datum['memory']) + " GB";
});
console.log(testData);
使用下划线可以执行以下操作:
_.each(testData , function( item ){
item['memory'] = parseSize(item['memory']) + " GB";
});
看
如果你想支持像IE8这样的老浏览器,不要使用map或forEach 使用下划线可以执行以下操作:
_.each(testData , function( item ){
item['memory'] = parseSize(item['memory']) + " GB";
});
看
如果你想支持像IE8这样的老浏览器,不要使用map或forEach