【发布时间】:2014-08-05 11:02:41
【问题描述】:
我有一个原始的二维数组,它代表每年 100% 的版本预算,看起来像:
budget = [['2001-01-01', 100], ['2001-01-02', 110], ... , ['2001-12-31', 140]]
现在我需要为项目创建预算子数组。例如:
project1 = [['2001-01-01', 10], ['2001-01-02', 11]]
意思是,它持续 2 天并使用 10% 的可用预算。
我通过以下函数创建项目数组:
project1 = [[]];
project1 = new_project(budget, 0, 1, 0.1);
function new_project(origin, start, end, factor) {
var result = [[]];
result = origin.slice(parseInt(start), parseInt(end)).map(function (item) {
return [item[0], parseInt(item[1]) * factor]
});
return result;
}
问题
我现在如何通过我创建的项目的值来减少我的预算数组? 我需要通过调用 new_project 即时修改预算以获得:
budget = [['2001-01-01', 90], ['2001-01-02', 99],..., ['2001-12-31', 140]]
jsfiddle 设置
【问题讨论】:
-
你为什么在'start'、'end'和'item[1]'参数上调用parseInt?你不需要这样做。
-
你是对的。有时 start 由 year/12 定义。年是 365。年 /12 给我 30,41 .. 这就是为什么
-
那么您想过滤掉一些预算数组成员,这些成员是否在 new_project 结果中?
-
我想通过项目数组的第二个元素减少预算数组的第二个元素。
-
所以会是 ['2001-01-02', 99]?
标签: javascript arrays multidimensional-array slice