gpt4 book ai didi

javascript - 迭代并获取字符串中每个由\n 分隔符分隔的值的元素,而不使用 split

转载 作者:行者123 更新时间:2023-12-03 02:23:46 26 4
gpt4 key购买 nike

我有一个输入字符串,例如

1
29
315
4597
5
6

每个数字都由\n 分隔符分隔,在常规情况下,我要做的就是使用 split() 方法来获取这些数字的数组,例如 ["1","29","315","4597","5","6"],然后迭代数组以获取其中的每个元素。

是否有一种方法可以获取这些元素,而无需生成此类数字的数组,并直接从字符串本身中单独提取这些数字及其索引?

最佳答案

您可以编写一个生成器函数,该函数逐个字符地循环源字符,并在找到换行符后生成一行:

function* lines(source) {
let buf = '';

for (let char of source) {
if (char === '\n') {
yield buf;
buf = '';
} else
buf += char;
}

if (buf)
yield buf;
}


source = `1
29
315
4597345345345
5
6`;

for (let line of lines(source))
console.log(line)

如果您还需要索引,则可以使用这个简单的实用程序:

function* enumerate(it, start = 0) {
for (let x of it)
yield [start++, x];
}

然后

for (let [index, line] of enumerate(lines(source)))
console.log(index, line)

请注意,“源”不一定是字符串,它可以是任何可迭代对象,例如一个文件,当您的数据无法一次全部保存在内存中时,这很实用。

关于javascript - 迭代并获取字符串中每个由\n 分隔符分隔的值的元素,而不使用 split,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49044923/

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