【发布时间】:2013-08-14 00:08:50
【问题描述】:
我编写了以下正常工作的代码,我正在创建一个新数组,该数组从数字中获取每两个成员并将它们相除。示例:
var numbers = [{ "name": "testvalue", "data": [10] },
{ "name": "testtotal", "data": [2] },
{ "name": "prodvalue", "data": [10] },
{ "name": "prodtotal", "data": [2] }];
var mydata = $.grep(numbers, function(e) {
return new RegExp('^test*').test(e.name)
});
console.log(mydata) // prints [{"name": "testvalue", "data": [10]}, {"name": "testtotal", "data": [2]}]
result = [{
"name": "testresult",
"data": [mydata[0]["data"] / mydata[1]["data"]]
}];
console.log(result) // [{"name": "testresult", "data": [5]}]
我的问题是关于效率,我正在做的事情是高效的还是有更好的方法来做事? (我是 JS/jQuery 新手,这就是我要问的原因)。
我不关心数字的内容,我想要的只是每两个元素相除,每个元素名称以total或value结尾
按要求采样真实数据。特别是数据来自graphite/d3.json
var data =
[ {"target": "xs12t11.Busy", "datapoints": [34,54,65,76,87] },
{"target": "xs12t11.Total", "datapoints": [34,54,2,12,33]} ];
【问题讨论】:
-
你对
numbers有控制权吗?如果是这样,有更好的方法来表示该结构。不太清楚你在这里做什么,部分原因是数组索引并没有提供那么多信息。 -
是的,问题是这些数据来自 d3.json,不幸的是我无法控制,但基本上每个元素都有两个名为“total”和“value”的哈希
-
另外我不能两次执行此请求,所以是的,我被卡住了。我的方法行得通,但我只是想在这里听取专家的意见。
-
只要您的数据集很小或者您不经常搜索它,这不会影响您的性能。
-
我有 43 个项目 (43*2)。我想按顺序执行它们 i/i+1 但我担心 d3.json 由于某种原因不会返回偶数条记录...
标签: javascript jquery d3.js graphite