【发布时间】:2014-11-05 15:26:56
【问题描述】:
我有一个已简化的数据集:
var data = [{
size: 400
}, {
size: 500
}, {
size: 800
}, {
size: 400
}, {
size: 400
} {
size: 300
}, {
size: 300
}, {
size: 800
}];
var windowWidth = 800;
使用 lo-dash 我将如何根据 windowWidth 的大小创建一个新数组。 优选的最终数据集将如下所示
var newArray = [{
group: [0],
size: 400
}, {
group: [1],
size: 500
}, {
group: [2],
size: 800
}, {
group: [3, 4],
size: 800
}, {
group: [5,6],
size: 600
}, {
group: [7],
size: 800,
}
关键字group指的是data[n]中满足小于windowwidth条件的索引。
键size 指的是组的累积大小。
注意:data[n] 只是计数,永远不会重复返回数据[0]。
data[n] 是否适合放在窗口内?
是的?推送到群组;去data[n +1 ].size;检查表达式
不是吗?创建新组();转到数据[n +1].size;检查表达式
【问题讨论】:
-
“基于 windowWidth 可以容纳多少尺寸”?什么?究竟应该如何从源头计算结果?
-
if(tempAccumlatedSize
-
stackoverflow.com/questions/26751236/… 继承了在 forloops 中完成的相同问题
-
我仍然不明白输入数组会发生什么。请在该结果中添加对
group和size含义的确切解释。 -
您是否仅按数组顺序组合项目?换句话说,您不会将索引 0 处的项目(大小:400)与索引 3 处的项目(大小:400)匹配,因为它们可能是
标签: javascript arrays loops underscore.js lodash