gpt4 book ai didi

javascript - 如何将带分隔符的连接数组拆分成 block

转载 作者:行者123 更新时间:2023-12-05 01:25:26 25 4
gpt4 key购买 nike

我有一个字符串数组

const arr = ['some', 'word', 'anotherverylongword', 'word', 'yyy', 'u']
const joined = arr.join(';')

我想获取连接字符串长度不大于 10 的 block 数组

例如输出将是:

[
['some;word'], // joined string length not greater than 10
['anotherverylongword'], // string length greater than 10, so is separated
['word;yyy;u'] // joined string length is 10
]

最佳答案

您可以使用 reduce (用一些 spread syntaxslice )生成这样的 block :

const arr = ['some', 'word', 'anotherverylongword', 'word', 'yyy', 'u'];
const chunkSize = 10;

const result = arr.slice(1).reduce(
(acc, cur) =>
acc[acc.length - 1].length + cur.length + 1 > chunkSize
? [...acc, cur]
: [...acc.slice(0, -1), `${acc[acc.length - 1]};${cur}`],
[arr[0]]
);

console.log(result);

想法是通过从 arr 的第一个元素(reduce 函数的第二个参数)开始,用 block (result) 构建数组),然后,对于 arr (arr.slice(1)) 的每个剩余元素,检查它是否可以附加到累加器(acc)。累加器最终成为 reduce 的最终返回值,分配给 result

关于javascript - 如何将带分隔符的连接数组拆分成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60353704/

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