gpt4 book ai didi

javascript - 使用 Underscore 更改数组中所有对象的值

转载 作者:行者123 更新时间:2023-11-30 10:12:27 25 4
gpt4 key购买 nike

我有一个对象数组,其中包含一个名为“内存”的属性,其值以 MB 为单位。我需要转换包含 GB 中 'memory' 值的对象的数组。我如何使用 Underscore.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);

以上代码无效。请让我知道哪里出错了。

添加 Jsfiddle 链接:http://jsfiddle.net/prashdeep/k29zuba2/

最佳答案

您的代码中出错的答案:

  1. 你应该使用_.each
  2. 您不应将结果重新分配给 testData
  3. 您应该访问 testData 中每个项目的 "memory" 属性,而不是 testData 本身

因此将您的后半部分代码更改为:

_.each(testData , function(datum){
datum['memory'] = parseSize(datum['memory']) + " GB";
});

console.log(testData);

关于javascript - 使用 Underscore 更改数组中所有对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25740124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com