gpt4 book ai didi

Javascript reduce() 直到值之和 < 变量

转载 作者:行者123 更新时间:2023-12-01 01:58:47 24 4
gpt4 key购买 nike

我正在从 JavaScript 中的 JSON 文件中获取视频时长数组(以秒为单位),为了简化起见,该数组如下所示:

array = [30, 30, 30]

我想将每个值添加到前一个值,直到满足条件(总和小于变量 x),然后获取新值和要播放的视频数组中的索引位置。

例如,如果 x=62(条件),我希望添加数组中的前两个值(根据我的理解,reduce() 在这里是合适的),并且索引 = 2(数组中的第二个视频)。

我已经掌握了reduce():

var count = array.reduce(function(prev, curr, index) {
console.log(prev, curr, index);
return prev + curr;
});

但似乎无法超越这一点..谢谢

最佳答案

您可以使用Array#some ,它会在条件满足时中断。

var array = [30, 30, 30],
x = 62,
index,
sum = 0;

array.some(function (a, i) {
index = i;
if (sum + a > x) {
return true;
}
sum += a;
});

console.log(index, sum);

具有紧凑的结果和此参数

var array = [30, 30, 30],
x = 62,
result = { index: -1, sum: 0 };

array.some(function (a, i) {
this.index = i;
if (this.sum + a > x) {
return true;
}
this.sum += a;
}, result);

console.log(result);

关于Javascript reduce() 直到值之和 < 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292460/

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