gpt4 book ai didi

javascript - 遍历数组并根据 lo-dash 中的条件求和一个值

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

我有一个经过简化的数据集:

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,
}

keygroup指的是data[n]中满足小于windowwidth条件的索引。 键 size 是指组的累积大小。

注意:data[n] 只是向上计数,永远不会重复回到 data[0]。

data[n] 是否适合窗口? 是的?推送到组;转到 data[n +1 ].size;检查表达式

没有?创建新组();转到数据[n +1].size;检查表达式

最佳答案

var sum = _.chain(data).pluck('size').reduce(function(result, val, i) {    
if (_.isEmpty(result) || val + _.last(result).size > windowWidth)
result.push({ size: val, groups: [i] });
else
{
var last = _.last(result);
last.size += val;
last.groups = last.groups || [];
last.groups.push(i);
}
return result;
}, []).value();

http://jsfiddle.net/219g9hqm/

关于javascript - 遍历数组并根据 lo-dash 中的条件求和一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760832/

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