gpt4 book ai didi

javascript - 挑选一个 JSON 对象来创建多个数组

转载 作者:行者123 更新时间:2023-12-02 18:36:59 25 4
gpt4 key购买 nike

我有一个包含 30 个对象的 JSON 数组(过去 30 天,包括今天)。每个对象都具有以下属性:

{
"date": "2013-05-20",
"notCachedRequestsDevelopment": "115482",
"cachedRequestsDevelopment": "4732914",
"notCachedBandwidthDevelopment": "15525231867",
"cachedBandwidthDevelopment": "2571078929",
"rejectRequestsDevelopment": "44068",
"rejectBandwidthDevelopment": "23169212",
"nonCSSCachedRequestsDevelopment": "6789",
"nonCSSNotCachedRequestsDevelopment": "1440",
"notCachedRequestsProduction": "9",
"cachedRequestsProduction": "1089270",
"notCachedBandwidthProduction": "2186497",
"cachedBandwidthProduction": "616508357",
"rejectRequestsProduction": "359",
"rejectBandwidthProduction": "168977",
"nonCSSCachedRequestsProduction": "0",
"CDNCachedRequests": 6062986,
"CDNNotCachedRequests": "272901.0",
"CDNRejectRequests": "84764.0",
"CDNAllBandwidth": 56006050473.574,
"billingBandwidth": 22525362831.36,
"billingHits": 6489103
}

我需要获取此 JSON 并创建一些新数组。例如:

我需要一个名为 totalBandwidth 的新数组,它接受每个 JSON 对象并计算以下属性:notCachedBandwidthDevelopment + cachedBandwidthDevelopment +rejectBandwidthDevelopment + notCachedBandwidthProduction + cachedBandwidthProduction +rejectBandwidthProduction

我需要另一个名为 developmentBandwidth 的数组,并从每个对象获取以下总和:cachedBandwidthDevelopment + notCachedBandwidthDevelopment

...等等。

我可以对每个新数组使用 for 循环来完成此操作,但我怀疑有更聪明的方法吗?

最佳答案

选项1:Array.prototype.map()

您可以尝试新的 javascript Array.prototype.map() 数组函数。就您而言,您可能需要类似的东西:

var developmentBandwidth = origArray.map(function(obj) {
return parseInt(obj.cachedBandwidthDevelopment) + parseInt(obj.notCachedBandwidthDevelopment);
});

developmentBandwidth 将是一个数字数组。

请注意,这仅在 ECMAScript 5 中实现,并且仅在现代浏览器中可用。查看 MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

它们提供了兼容性功能,允许您在旧版浏览器上使用该功能。

<小时/>

选项 2:jQuery.map()

看起来 jQuery 库提供了类似的功能。上面相同的例子可以通过以下方式实现:

var developmentBandwidth = $.map(origArray, function(obj, index) {
return parseInt(obj.cachedBandwidthDevelopment) + parseInt(obj.notCachedBandwidthDevelopment);
});
<小时/>

here两个选项之间的比较

关于javascript - 挑选一个 JSON 对象来创建多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223030/

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